![]() |
Freigabe in DLL!? Wo ist der Fehler...
Hi! Ich hab eine DLL, vom Prinzip:
Delphi-Quellcode:
Wo/Wie geb ich die Stringliste frei? Wenn ich das .Free reinschreib ist die SL leer/"weg".
library Project1;
... var StringList: TStringList; function MachDies: TStringList; stdcall; begin StringList := TStringList.Create; BearbeiteDieStringlist; result := StringList; // Freigabe ?? // StringList.Free; end; exports MachDies; stefan |
Re: Freigabe in DLL!? Wo ist der Fehler...
Übergib das ganze als var Parameter:
Delphi-Quellcode:
Dann ist klar, wer den Speicher aufräumen muss.
procedure Foo(var sl: TStringList);
begin sl.Add('Test'); end; procedure TForm1.Button1Click(Sender: TObject); var sl: TStringList; begin sl := TStringList.Create; Foo(sl); ShowMessage(sl.Text); sl.Free; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz