![]() |
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. |
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: |
AW: CoCreateInstance und freigeben von geladenen Objecten
OK Danke dann hat sich das erübrigt.
|
AW: CoCreateInstance und freigeben von geladenen Objecten
Zitat:
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