c#引用dll出错

来源:百度知道 编辑:UC知道 时间:2024/06/02 20:46:29
问个c#调用dll的问题,谢谢大家!
[DllImport("Project2.dll",
EntryPoint = "Encrypt",
CharSet = CharSet.Auto,
CallingConvention=CallingConvention.StdCall)
]
public static extern string Encrypt(??????????);

delphi中函数是这样的
function Encrypt(const S: AnsiString; Key: Word): AnsiString;

问号处怎么写??
写成string s, int key
结果说“尝试读取或写入受保护的内存”

这个我不懂,不过听说delphi的函数调用时传递参数的顺序有点不同,你可以把CallingConvention里的各种方式都试一下
对了 CharSet还是改成Ansi吧

应该是 intpr吧

传的参数 是Intpr.Zero

你试试

function Encrypt(const S: AnsiString; Key: Word): AnsiString;

很明显,Const这里是个常量!!!
你在看看拉