In DLLs arbeite ich nie mit Strings zur Parameterübergabe an Funktionen, sondern mit PChars.
Delphi-Quellcode:
// DLL-Funktion
function MyDLLFunction (StrParam: PChar): Integer;
begin
...
end;
// Exe
function MyDLLFunction (StrParam: PChar): Integer;
stdcall;
// Aufruf
var
myStr: PChar;
const
MyText:
String = '
Test';
begin
GetMem (myStr, Length (MyText));
try
StrCopy (myStr, PChar (MyText));
Result := MyDLLFunction (myStr);
finally
FreeMem (myStr);
end;
end;