Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   CoCreateInstance und freigeben von geladenen Objecten (https://www.delphipraxis.net/204829-cocreateinstance-und-freigeben-von-geladenen-objecten.html)

venice2 3. Jul 2020 08:48

CoCreateInstance und freigeben von geladenen Objecten
 
Ich lade DLL's vom System mit CoCreateInstance und der CLSID.
Wie gibt man diese wieder frei ohne das Programm zu beenden? Die DLL's
Ich habe bemerkt wenn man diese nicht freigibt die verwendeten Ressourcen der DLL's nicht freigegeben werden die summieren sich.

himitsu 3. Jul 2020 11:22

AW: CoCreateInstance und freigeben von geladenen Objecten
 
Nunja, wenn die letzte Instanz der erzeugten Objekte freigegeben wurden (nil oder Variable weg),
dann kommt es drauf an, wie das drüben implementiert wurde, also ob dann auch die eventuelle "globale" Variablen freigegeben und eventuell sogar die ganze DLL entladen wird.

Da hast du keinen einfluss drauf
und wenn du es dann selbst freigibst, dann bist du selbst dran Schuld, falls es negative Auswirkungen hat. (falls ein zwischendrin Entladen und eventuell späteres neuladen nicht richtig unterstützt wird)


per se:
GetModuleHandle + FreeLibrary
oder LoadLibrary und zwei Mal FreeLibrary :stupid:

venice2 3. Jul 2020 12:51

AW: CoCreateInstance und freigeben von geladenen Objecten
 
OK Danke dann hat sich das erübrigt.

venice2 5. Jul 2020 15:59

AW: CoCreateInstance und freigeben von geladenen Objecten
 
Zitat:

Da hast du keinen einfluss drauf
Doch.
Nach einigen recherchieren habe ich die Lösung gefunden.

Delphi-Quellcode:
CoFreeUnusedLibraries;


Nach ca. 1 Min werde alle Libs freigegeben die nicht mehr verwendet werden.
Ich muss sie also nicht mehr Stundenlang im Speicher halten.
Das war es schon.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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