Einzelnen Beitrag anzeigen

Gargamel

Registriert seit: 19. Mär 2007
171 Beiträge
 
#8

AW: String-Übergabe von Delphi-DLL an C#

  Alt 3. Apr 2013, 12:24
@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;

Geändert von Gargamel ( 3. Apr 2013 um 12:27 Uhr)
  Mit Zitat antworten Zitat