admin 管理员组文章数量: 1184232
相信很多使用c#的朋友碰到过类似的问题,我今天在开发中也碰到类似问题,希望能给大家一点启示吧!
在delphi中申明的函数原型为 function aa(var writedate:pchar;var validdate:pchar):integer;stdcall;
动态库的名称为valid.dll.而且函数的返回值是通过两个pchar类型来返回的
那么我们在c#中该用何种类型来接收pchar呢,
个人建议用stringbuilder,我们在c#中可以这用来申明
[DllImport("valid.dll"),EntryPoint="aa" CharSet=Charset.Ansi]
public static extern int checkDate(ref StringBuilder WriteDate,ref StringBuilder LimitDate);
记住如果delphi中用var来申明变量的,在C#中一定要加ref 的,
另外在delphi中用pchar类型的变量在C#中最好用StringBuilder
否则得话可能用C#来调用Delphi Dll 会报错,通常提示为内存写保护的错误信息。
版权声明:本文标题:面对C#与Delphi DLL集成挑战:深入探讨并解答遇到的‘内存访问权限限制’问题 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1771215942a3542082.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论