所以我学会了在这种情况下使用 IntPtr,
-delphi(delphi 2006版)代码
function GetRequestResult(out code:integer):PChar; stdcall;
begin
LogMessage('GetRequestResult');
code:=requestCode;
result:=PChar(RequestResult);
LogMessage('GetRequestResult done');
end;
然后,为了在 c# 中使用,我使用了喜欢,
IntPtr str = GetRequestResult(out code);
string loginResult = Marshal.PtrToStringAnsi(str);
这很好用。
那么,这个案子呢?
-德尔福代码
procedure Login(login,password:PChar); stdcall;
...
...
这个 PChar 在 () 里面。那么将字符串值传递给该 Login delphi 函数的确切方法是什么?
[DllImport ("ServerTool")]
private static extern void Login([MarshalAs(UnmanagedType.LPStr)]string id, [MarshalAs(UnmanagedType.LPStr)]string pass);
私有静态外部无效登录(IntPtr id,IntPtr pass);// 这种情况下,后面如何使用这个 IntPtr?
私有静态外部无效登录(字符串ID,字符串传递);
提前致谢。