I'm trying to rewrite a code from C# based on a DLL (maybe also from C#, I don't have source/doc from it), in Delphi 10.3. But I'm facing some problems around a string field... Here is the working code from C#:
[DllImport("methods.dll", CharSet = CharSet.Ansi)]
public static extern int getName([MarshalAs(UnmanagedType.LPStr)] ref string apstrName);
string myName = "";
int ret = getName(ref myName);
"ret" gets "0" and "myName" gets "ok".
In Delphi, I've tried:
function getName(var apstrName: PAnsiChar): Integer; stdcall; external 'methods.dll';
var myName: PAnsiChar;
ret := getName(myName);
But "ret" gets "-1" (invalid parameter) and "myName" gets "#0" (null).
I've tried other types instead PAnsiChar: PChar, PWideChar, PByte, string, AnsiString, WideString... No success!
Do you have any clue what's wrong here?
Thanks a lot!