AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrfaches einbinden von DLL verhindern.

Ein Thema von Viktorii · begonnen am 13. Aug 2008 · letzter Beitrag vom 18. Aug 2008
 
Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#4

Re: Mehrfaches einbinden von DLL verhindern.

  Alt 13. Aug 2008, 08:34
Zitat von mkinzler:
Das Laden der Dll erfolgt durch Windows. Du müsstest die Sperrverwaltung also manuell implementieren
Das habe ich mir schon gedacht. Die Frage ist nur wie? Für meine Programme habe ich diese Unit, welche ich einfach in das Projekt einbinde:

Delphi-Quellcode:
unit MultipleAppicationNotifyer;

interface

implementation
uses
  Windows, Dialogs, SysUtils, Forms;

var
  mHandle : THandle;

initialization
  mHandle := CreateMutex(nil, True, pChar(Application.Title));

  if GetLastError = ERROR_ALREADY_EXISTS then
  begin
    CreateMessageDialog('Application already running!', mtWarning, [mbOk]).ShowModal;
    Halt;
  end;


finalization
  if mHandle <> 0 then
    CloseHandle(mHandle)

end.
Funktioniert super. Aber wie mache ich das bei ner DLL?


Zitat von Luckie:
Warum dürfen die Funktionen nicht parallel ausgeführt werden? Jedes Programm, welches die DLL läd bekommt eine eigene Kopie der Daten - auch der globalen Varaiablen, da sollte nichts passieren.
Weil ich dort auf USB Geräte zugreife. Wenn Kommunikation im Gange ist bzw. das USB-Gerät irgendwelche Aufgaben ausführt und dann ein zweites Programm dazwischenfunkt, es zu Fehlern kommen kann. Das möchte ich so verhindern.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:34 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