Gast
#5558947
Hallo, ich möchte eine dll erstellen (c++), die in ihrem Speicherbereich auch Daten/Objekte besitzt also nicht nur Funktionen beinhaltet. Nach meiner Kenntnis verhält sich eine dll naturgemäß ein bisschen so wie „shared memory“ und wird normal nur 1x in den Speicher geladen, nutzen dann mehrere Threads/Prozesse die gleiche dll wird immer auf den selben Speicherbereich zugegriffen das heißt ohne Synchronisierung der Daten innerhalb der dll knallt es. Ziel ist bei mir aber, dass jedes Programm welche die dll einbindet ein eigenen Speicherbereich der Daten der dll bekommt. Sozusagen so als würde die dll von jedem Programm neu in einen eigenen Speicherbereich geladen werden. Nach allem was ich bisher wusste geht das nicht. Jetzt allerdings habe ich diese Aussage bei wiki gefunden: https://de.wikipedia.org/wiki/Dynamic_Link_Library#DLLs_im_Speicher Zitat:
1 | |
2 | |
Die Aussage „...jedes Mal, wenn ein neues Programm eine DLL benötigt, eine neue Instanz von dieser in den Speicher geladen wird.“ klingt für mich nach dem was ich suche, als wäre es doch möglich eine dll zu erstellen die von jedem Programm neu in den Speicher geladen wird. Funktioniert das wirklich und was muss dann genau in dem Flag des Headers stehen damit die dll jedes mal neu in den Speicher geladen wird? Leider konnte ich dazu nirgendwo etwas finden. Grüße