Ich habe zwei DLLs. In der einen ist eine Funktion, die ein PChar zurückliefert. Nur dummerweise empfängt die andere
DLL nur Unsinn.
Der Code sieht so aus:
Delphi-Quellcode:
interface
uses SysUtils;
function getText():PChar; cdecl; exports getText;
implementation
function getText():PChar;
var text:string;
Begin
text:='Gargamel';
result:=PChar(text);
End;
Die zweite
DLL, die getText aufruft sieht so aus:
Delphi-Quellcode:
interface
uses SysUtils;
const DLLName = 'blabla.dll';
function getText():PChar; external DLLName;
implementation
procedure machmal();
var back_p:PChar;
back:string;
Begin
back_p:=getText();
back:=StrPas(back_p);
end;
Das Problem ist, daß die Variable back nur Unsinn behinhaltet. Wo ist der Fehler?