@DeddyH:
Der Code produziert leider einen Absturz.
Ich habe jetzt einfach mal den lokalen Delphi-String zu einem globalen gemacht. Damit bleibt die Variable erhalten und es wird durch die Funktion ein Zeiger geliefert, der auf den korrekten Speicherbereich verweist.
Meine eigentliche Frage zielte ja darauf ab, warum ich den Zeiger nochmal löschen soll. Hat sich ja damit erledigt.
Delphi-Quellcode:
function getString(text:PAnsiChar):PAnsiChar; cdecl; exports getString;
var finalText:string;
function getString(text:PAnsiChar):PAnsiChar;
var tempText:string;
Begin
tempText:=WideString(text);
finalText:=tempText + ' und etwas Delphi-Text';
result:=PAnsiChar(AnsiString(finalText));
End;