so nicht! das ist das gleiche wie mit dem PChar als result. Das musst du erstmal ändern.
Du weißt ja schon wieder die adresse der lokalen Variablen deinem PChar zu.
So macht man das:
Delphi-Quellcode:
//procedure außerhalb der dll
var
lRes :
String;
begin
SetLength(lRes, 1024);
ZeroMemory(@lRes[1], Length(lRes));
DllProcedure(@lRes[1], Length(lRes));
end;
//procedure innerhalb der dll
procedure DllProcedure(ARes: PChar; AResSize);
var
meinString:
String;
begin
meinString := '
Rückgabe';
move(ARes^, meinString[1], Min(AResSize, Length(meinString));
end;
(ungetestet)