博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#调用Delphi写的动态链接库
阅读量:7117 次
发布时间:2019-06-28

本文共 750 字,大约阅读时间需要 2 分钟。

Delphi动态链接库中函数定义为:
function
 Encrypt(
const
 OrignStr,Key: PChar; NewStr,ErrStr:PChar): Boolean;stdcall;
这里省去上千字的尝试失败过程,只有下面的方法是通过的
[DllImport(
"
Encrypt.dll
"
, CharSet
=
CharSet.Ansi, CallingConvention
=
CallingConvention.StdCall)]
public
 
static
 
extern
 
string
 Encrypt(
string
 OrignStr,
string
 Key, StringBuilder NewStr, StringBuilder ErrStr);
调用代码:
string
 key 
=
 tbxKey.Text;
StringBuilder mw 
=
 
new
 StringBuilder(); 
//
密文变量
StringBuilder err 
=
 
new
 StringBuilder(); 
//
错误信息
myDES.DESEncryptString(tbxYw.Text, key, mw, err);
这里值的注意的是要外传的PChar类型参数,在C#中对应使用StringBuilder,如果使用string没有任何信息传出。
而根据网上说的使用ref string形式,则会出现内存错误。
经过测试:Delphi中Integer的参数使用C#中的int即可,如果是需要外传的integer参数,则使用out int

转载于:https://www.cnblogs.com/baoposhou/archive/2008/04/24/1168612.html

你可能感兴趣的文章
iOS__上传应用到AppStore出现Authenticating with the iTunes store
查看>>
mac下设置eclipse自动提示
查看>>
IntelliJ IDEA中日志分类显示设置
查看>>
数据结构思维 第十六章 布尔搜索
查看>>
独家|从满天飞舞到逐步落地,自动驾驶好消息只会越来越多
查看>>
如何找到后台运行的隐藏程序
查看>>
多维防护:虚拟化安全挑战的破解之道
查看>>
从羽泉到智能硬件,离婚后的胡海泉走过了一条什么样的道路?
查看>>
VR训练营第一期:聊聊全景拍摄和直播那点事
查看>>
Ubuntu 16.04下ssh启用root登录
查看>>
2016中国大数据大会暨大数据年度盛典将于12月20日在京举办
查看>>
双11大幕拉开,菜鸟智能机器人也将测试运行
查看>>
Mac OS 10.12使用SecureCRT 8.1.4无法保存密码的问题解决
查看>>
windbg调试实例(4)--句柄泄露
查看>>
关于directX最近的学习方案
查看>>
Maven在Eclipse中的实用小技巧
查看>>
红黑树
查看>>
常见自动化测试工具,你用过哪些?
查看>>
JdbcTemplate使用小结
查看>>
2014 网选 5011 Game(Nim游戏,数学题)
查看>>