Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

DLL mehrfach im Programm verwenden

  Alt 19. Jan 2009, 20:37
Moin !

Ich hät da mal gern ein Problem mit DLLs ... Und zwar nutzen wir MDI Fenster. In diesen Fenstern kommen Daten an und die werden über eine DLL ausgewertet. Nun kann man aber logischerweise mehrere MDI Fenster parallel halten und somit hat man auch mehrfach die DLL in Verwendung. Die DLL wird jeweils dynamisch in dem MDI Fenster per LoadLibrary eingebunden.

So bis hierher alles tutti - das funktioniert. Nun habe ich mich erdreistet in der DLL eine globale Variable zu definieren:
var LastTime : TDateTime; Diese Zeit wird verwendet um die Zeitdifferenz zwischen zwei Dateneingängen zu überprüfen.

Wenn ich nun aber 2 MDI Fenster auf die gleiche DLL los schicke, dann scheinen diese globalen Variablen von beiden MDI Fenstern genutzt zu werden, denn die Zeitdifferenzen passen aufmal überhaupt nimmer ... Auch ein Logging hat das bestätigt.

Nun ist es sicherlich schon mal falsch (so vermute ich mal) in der DLL globale Variblen zu "halten", oder? Das Problem ist allerdings, dass dort verschiedene DLLs zur Auswertung herangezogen werden können. Und jede DLL braucht so ihre eigenen Merker zur Auswertung. Wie mache ich dass denn nun?

Ich hatte ja eigentlich gedacht / gehofft das durch die Erstellung eines neuen MDI Fensters und die damit verbundene dynamische Neuverlinkung der DLL quasi eine neue Instanz der DLL erzeugt wird. Aber dem ist wohl nicht so ?!
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat