Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.159 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

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

  Alt 3. Apr 2013, 10:49
So ganz habe ich das in Delphi jetzt immer noch nicht verstanden, aber wenn die Funktion endet, dann gibt es auch keine Referenz mehr auf den String und er wird entfernt. PAnsiChar kopiert, laut Hilfe, den String nicht, deine Funktion gibt letztendlich eine Adresse auf etwas zurück, dass wohl direkt wieder abgeräumt wird.

Mit StrNew scheint man explizit den String auf den Heap zu schreiben und dort zu lassen.

Geschickter wäre es allerdings, in deinem Programm den Speicher anzulegen, die Adresse an die DLL zu schicken und den Speicher auch selbst wieder im Programm freizuräumen, dann bräuchtest du das delphi_freeString() auch nicht.
  Mit Zitat antworten Zitat