![]() |
DLL nur Systemweit und automatisch Referenz holen
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo alle zuzsammen,
Wieder mal eine Frage aus der DLL Welt :-) Ich hab 2 Programme die gleichzeitig auf eine DLL zugreifen müssen. Jetzt hab ich wirklich alles versucht, sogar das mit der DLL_ATTACH funktionen, etc.. aber die DLL wird pro Program jeweils geladen. Anbei ein Screenshot mit dem Problem. Gibt es eine Möglichkeit die DLL wirklich nur einmal zu laden und wenn die DLL entdeckt das sie bereits geladen worden ist, automatisch auf die schon geladene DLL zeigt. Für die Programme sollte es keinen Unterschied machen. Ich will also sowas wie eine "Intelligente" DLL :-) Grüße Andi |
Re: DLL nur Systemweit und automatisch Referenz holen
Sie wird auch nur einmal geladen. Und zwar einmal in den Speichern. Dann wird sie nur noch in den Adressraum der Prozesse gemappt, die sie laden. Dass sie natürlich deswegen auch im Adressraum der anderen Prozesse auftauchen ist klar.
|
Re: DLL nur Systemweit und automatisch Referenz holen
Das hab ich jetzt schon mitbekommen.
Mein Problem ist jetzt folgendes: Intern ist ein Memory Stream (Klasse) in dem ich einen Namespace verwalte. Dieser soll jetzt beschrieben und gelesen werden und zwar von allen Applikationen gleichzeitig die lokal laufen und die DLL geladen haben. Aber die beiden Applikationen sehen unterschiedliche Namespaces... Jetzt die Frage. Wenn ich intern in die "initialization" sections die objekte kreiere, sind die dann Global gültig oder wird bei jedem Loadlibrary Befehl die DLL neu initialisiert?? |
Re: DLL nur Systemweit und automatisch Referenz holen
Zitat:
![]() |
Re: DLL nur Systemweit und automatisch Referenz holen
Zitat:
:shock: Wow, ich wusste gar nicht, dass VC unter Windows die POSIX-Calls beherrscht. Hast du das getestet? |
Re: DLL nur Systemweit und automatisch Referenz holen
Ok. Wenn die DLL jetzt einmal geladen ist, jeder Prozess aber seinen eigenen Prozessbereich sieht, dann kommen diese auch nie in die Quere oder?
Was ist mit der BORLNDMM.DLL und ShareMem Unit? Würde die eine Lösung bringen? |
Re: DLL nur Systemweit und automatisch Referenz holen
Ich nicht, aber der Petzold nutz es in seinem Programm zum Sichern der Desktopicon Positionen.
|
Re: DLL nur Systemweit und automatisch Referenz holen
Zitat:
|
Re: DLL nur Systemweit und automatisch Referenz holen
Das was du amchen willst ist unter Delphi nicht möglich. Wird in 2 Prozessen die dll geladen, dann sind alle Variabeln etc unterscheidlich. Erzeugst du also einen Stream (Objekt) so existiert dieses nur in dem Prozess wo du es gemacht hast.
Willst du gemeinsame Daten nutzen, musst du es mit MemoryMappedFiles machen. |
Re: DLL nur Systemweit und automatisch Referenz holen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz