本示例是编写一个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