c# 调用Delphi的dll时,
1.如果dll中的函数参数含有var,则c#中要加上ref(引用);
否则,会有提示错误:“尝试读取或写入受保护的内容。这通常指示其他内存已损坏”。
2.如果dll中的参数是THandle类型,在c#中用IntPtr代替。
3.如果dll中的参数是PChar类型,在c#中应该用byte[]代替。
使用网上说的用ref string或StringBuilder代替PChar都有问题
c# 调用Delphi的dll时,
1.如果dll中的函数参数含有var,则c#中要加上ref(引用);
否则,会有提示错误:“尝试读取或写入受保护的内容。这通常指示其他内存已损坏”。
2.如果dll中的参数是THandle类型,在c#中用IntPtr代替。
3.如果dll中的参数是PChar类型,在c#中应该用byte[]代替。
使用网上说的用ref string或StringBuilder代替PChar都有问题