Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Anzahl der Instanzen einer DLL zählen (https://www.delphipraxis.net/157641-anzahl-der-instanzen-einer-dll-zaehlen.html)

Neutral General 19. Jan 2011 13:44

Anzahl der Instanzen einer DLL zählen
 
Hallo,

Ich habe eine DLL geschrieben und möchte nun global auf die Anzahl der Instanzen dieser DLL zugreifen können. Also quasi die Anzahl der Prozesse, die diese DLL geladen haben.

Ich hab das Gefühl, dass man sowas mit Semaphoren oder Mutices machen kann. Aber keine Ahnung.
Kann mir jemand vllt. kurz ein Stichwort an den Kopf schmeißen. Im Idealfall Beispielcode oder kurzer Erklärung.

(Momentan löse ich das per MMF, aber wenn der Prozess abgeschossen wird, bekomme ich das natürlich nicht mit)

Danke :-)

Gruß
Neutral General

Luckie 19. Jan 2011 13:51

AW: Anzahl der Instanzen einer DLL zählen
 
Wenn ein Prozess abgeschossen wird, wirst du das auch auf anderen Wege nicht mitbekommen, denn dann hat der Prozess keine Möglichkeit mehr die DLL zu entladen. Und ob Windows das merkt, weiß ich nicht.

Zitat:

The state of global data maintained by dynamic-link libraries (DLLs) may be compromised if TerminateProcess is used

Neutral General 19. Jan 2011 14:02

AW: Anzahl der Instanzen einer DLL zählen
 
Hallo,

Mh nagut. Aber Ich werde momentan auch von einem einfachen Programmende "überrascht". Der Vorteil ist vllt, dass ich in der DLL einen Hook drin hab. Bin mir grad nicht sicher.. aber gibts eine Message die eine Anwendung bekommt kurz bevor die Anwendung geschlossen wird? Oder wie merke ich das als DLL in einem fremden Prozess? Komm ich vllt. nicht drum rum eine Funktion zu Hooken (PostQuitMessage)?

Gruß
Neutral General


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