Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Freigabe in DLL!? Wo ist der Fehler... (https://www.delphipraxis.net/28774-freigabe-dll-wo-ist-der-fehler.html)

StefanDP 30. Aug 2004 03:36


Freigabe in DLL!? Wo ist der Fehler...
 
Hi! Ich hab eine DLL, vom Prinzip:

Delphi-Quellcode:
library Project1;
...
var
  StringList: TStringList;

function MachDies: TStringList; stdcall;
begin
  StringList := TStringList.Create;
  BearbeiteDieStringlist;
  result := StringList;
  // Freigabe ??
  //  StringList.Free;
end;

exports
  MachDies;
Wo/Wie geb ich die Stringliste frei? Wenn ich das .Free reinschreib ist die SL leer/"weg".

stefan

Luckie 30. Aug 2004 05:20

Re: Freigabe in DLL!? Wo ist der Fehler...
 
Übergib das ganze als var Parameter:
Delphi-Quellcode:
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;
Dann ist klar, wer den Speicher aufräumen muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz