Deep-Sea |
18. Aug 2008 15:55 |
Re: Mehrfaches einbinden von DLL verhindern.
Zitat:
Zitat von Viktorii
Zitat:
Zitat von brechi
Delphi-Quellcode:
mHandle := CreateMutex(nil, True, 'bineinetolleDLL');
if GetLastError = ERROR_ALREADY_EXISTS then
begin
CreateMessageDialog('Application already running!', mtWarning, [mbOk]).ShowModal;
Halt;
end;
|
Das funktioniert in sofern, dass das doppelte Öffnen Erkannt wird und die Medlung angezeigt wird. Allerdings wird die Anwendung nicht geschlossen, sondern läuft parallel zu der ersten weiter.
|
Ich glaube dieser Code soll in die Applikation, nicht in die DLL. Sprich: Tritt kein ERROR_ALREADY_EXISTS auf, so darf die Applikation die DLL laden. Beim freigeben der DLL muss sie natürlich auch wieder den Mutex freigeben. Tritt der Fehler jedoch auf, so verfährst du wie es im Code oben steht, bzw. wie du es auch bei deiner "MultipleAppicationNotifyer"-Unit tust.
(Seh ich doch richtig, oder?) ...
|