AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Dispose = Exception, kein Dispose = Memory Leak
Thema durchsuchen
Ansicht
Themen-Optionen

Dispose = Exception, kein Dispose = Memory Leak

Ein Thema von jensw_2000 · begonnen am 20. Sep 2007 · letzter Beitrag vom 20. Sep 2007
Antwort Antwort
Stefan.Buchholtz

Registriert seit: 2. Dez 2004
Ort: Mönchengladbach
7 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Dispose = Exception, kein Dispose = Memory Leak

  Alt 20. Sep 2007, 11:16
Wenn dynamisch belegter Speicher zwischen verschiedenen Modulen ausgetauscht wird, muss immer das Modul den Speicher freigeben, das ihn auch belegt hat. Alternativ kannst du sowohl im Programm als auch in der DLL als erstes die Unit ShareMem einbinden - das ersetzt den Standard-Speichermanager der Delphi-Runtime durch einen, der auch über Modulgrenzen funktioniert. Dann muss zusammen mit dem Programm allerdings noch die borlndmm.dll installiert werden, die diesen Speichermanager enthält.

Ohne ShareMem ist es so richtig:

Delphi-Quellcode:
procedure Register_API( const Servername:String );
begin
  ApiRegisterInfoRec := new(PTApiRegisterInfoRec);
  // Record füllen
  ApiRegisterInfoRec.Servername := Servername;
  // Callback Prozeduren übergeben
  ApiRegisterInfoRec.OnState := @OnGetApiState;
  ApiRegisterInfoRec.OnError := @OnGetApiError;
  
  // DLL Register_ClientApplication aufrufen
  Register_ClientApplication(ApiRegisterInfoRec);

  // Speicher von ApiInitRec aufräumen
  Dispose(ApiRegisterInfoRec);
end;
Stefan
Stefan Buchholtz
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 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