我已经搜索了很多关于这个问题的信息,但没有明确的答案说明如何将一个字符串从Delphi DLL传递给.NET。下面的代码是基于MSDN帮助文件:http://msdn.microsoft.com/en-us/library/4zey12w5.aspx。
当我调用myDelphiFunc时,"buffer"变量中收到一个空字符串。我做错了什么吗? 提前致谢。
//Delphi code
function myDelphiFunc(var Buffer: PChar): Integer; export; stdcall;
Buffer:='this is a test';
Return:=0;
end;
//vb.NET code
<DllImport(path)> _
Public Function myDelphiFunc(ByVal buffer As String) As Integer
Public Sub myNETFunc()
Dim buffer_size As integer = 25
Dim buffer As String = New String(CChar(" "), buffer_size )
Call myDelphiFunc(buffer)
MsgBox(Strings.Left(buffer, InStr(buffer, Chr(0)) - 1))
End Sub
当我调用myDelphiFunc时,"buffer"变量中收到一个空字符串。我做错了什么吗? 提前致谢。