I have searched a lot about this issue, and there is no clear answer about how to pass a string from delphi dll to .NET Next code is based on msdn help files: http://msdn.microsoft.com/en-us/library/4zey12w5.aspx
//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
I receive an empty string in "buffer" variable when calling myDelphiFunc. What am I doing wrong?
Thanks in advance