首页 > 其他分享 >rust编写md5函数的dll供pb调用

rust编写md5函数的dll供pb调用

时间:2022-10-13 16:46:50浏览次数:48  
标签:string instr dll pb let outstr rust md5

本示例是编写一个rust的dll文件,其中有一个md5函数,这个函数可以供pb程序调用

rust代码例子

///
/// 供pb调用的md5生成函数
/// src:传入字符串
/// dst:返回md5字符串
/// return:返回md5长度
///
#[no_mangle]
pub unsafe extern "system" fn md5(src: *const c_char, dst: *mut c_char) -> u32 {
    
    let srcstr = {
        assert!(!src.is_null());
        CStr::from_ptr(src)
    };
    
    let instr = srcstr.to_string_lossy().into_owned();
    let mut md5 = Md5::new();
    md5.input_str(&instr);
    let outstr =  md5.result_str();
    let outlen = outstr.len();
    let outstr_to_print = CString::new(outstr).unwrap();
    copy_nonoverlapping(outstr_to_print.as_ptr(), dst, outlen+1);

    outlen as u32

}

pb代码例子

1、声明外部md5函数

public function ulong md5(string source,ref string destination) library "fiidll.dll" alias for "md5;Ansi"

2、pb调用测试

string instr,outstr

instr = "我是输入参数abc"
outstr = space(255)

int r
r = md5(instr,ref outstr)

messagebox(string(r),outstr)

 

标签:string,instr,dll,pb,let,outstr,rust,md5
From: https://www.cnblogs.com/chb39335580/p/16788672.html

相关文章