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
结果说“尝试读取或写入受保护的内存”
[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这里是个常量!!!
你在看看拉