Hallo,
Wie schaffe ich es eine
dll zu erzeugen, die nur einmal im Speicher ist, obwohl sie von 2 Programmen geladen wird. Damit meine ich auch das alle Variablen etc. nur einmal existieren, sodass die Programme über die
dll praktisch Daten austauschen können.
Wikipedia sagt dazu Folgendes:
Zitat:
Es gibt zwei verschiedene Arten, wie DLLs vom Betriebssystem in den Speicher geladen werden. Es gibt statische DLLs, die nur einmal geladen werden. Alle Programme greifen dann auf diese eine Instanz der
DLL zu. Diese
DLL hat dann nur einen globalen Speicherbereich. Die Windows-Kernel-DLLs sind solche statischen DLLs, was ihnen erlaubt, das gesamte System zu verwalten (z. B. alle offenen Dateien zu überwachen). Die andere Art, wie eine
DLL im Speicher verwaltet werden kann, ist die, dass jedes mal wenn ein neues Programm sie benötigt, auch eine neue Instanz von ihr in den Speicher geladen wird. Ob eine
DLL statisch oder nicht ist legt ein weiteres Flag im Header der
DLL fest.
Leider weis ich nicht wie das in Delphi funktioniert.
Ich hoffe Ihr könnt mir helfen.
Viele Grüße,
Tobi