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 ?!