Singelton in einer DLL!

Hallo zusammen,

ich habe eine DLL geschrieben, die von mehreren Programmen aufgerufen werden soll. Deshalb erstelle ich in der DllMain im Fall von DLL_PROCESS_ATTACH mittels der Methode GetInstance() ein neues Singelton Objekt. Greife ich nun von einem anderen Programm auf die DLL zu wird diese Funktion nochmals durchlaufen und ein neues Singelton-Objekt erzeugt, was ja eingentlich nicht möglich sein sollte. Greife ich bei jedem Aufruff der Dll auf eine eigene Kopie der Dll zu und nicht auf die gleiche, schon geladene? Wie könnte ich das Problem anderst lösen?

Gruß Jens

Hallo Jens

  1. Du kannst nie davon ausgehen, dass eine DLL wirklich nur genau einmal im Speicher gehalten wird.

  2. Die DLL ist keine eigene Applikation im eigentlichen Sinn, es ist Code welcher von einer anderen Applikation benutzt wird, welche diesen somit zueigen macht.

Ergo: Schreibe eine Applikation welche auf dem System läuft und welche mit anderen Applikationen über eine geeignete Kommunikationsschicht daten austauscht. Diese Applikation sollte so gestrickt sein, dass sie nur einmal auf dem System vorhanden ist. (siehe hierzu: http://www.codeproject.com/cpp/avoidmultinstance.asp)

Gruss
Peer

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]