Angenommen es gibt eine EXE und diese läd 3 DLLs dynamisch. In jede dieser DLLs ist die gleiche globale Variable definiert. Die Variable wird aber in jeder DLL mit einen anderen Wert gesetzt und anders verarbeitet. Kann ich sicher sein, dass die Variablen gleichen namens sich nicht "beissen"?
Announcement
Collapse
No announcement yet.
Global definierte Variablen
Collapse
X
-
Wenn es verschiedene DLLs sind dann hast du kein Problem. Nur beim Adressieren dr Variable musst du aufpassen, damit du auch die richtige DLL erwischst.<br>
Andersrum kommt es zu Problemen. Wenn mehrere Programme auf eine DLL greifen, dann kommt es darauf an ob die Variable in einem Shared Segment liegt oder nicht. Delphi kann keine Shared Segments einrichten, aber MS VC++
-
Verschiedene DLLs verden an verschiedenen Stellen ins Hauptprogramm geladen (genauer eingeblendet).<br>
Das Hauptprogramm kann daher jede Variable jeder DLL unterscheiden.<br>
Aus Sicht der DLL wird alles viel schwieriger. Die DLL kann in mehreren Programmen geladen sein. Gemeinerweise bekommt jedes Programm eine Kopie der DLL. Du solltest mal einen globalen Hook schreiben, damit du siehst was das fuer Auswirkungen haben kann
Comment
Comment