Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#2

Re: DLL mehrmals laden / mehrere Instanzen bei einem Prozess

  Alt 28. Mai 2006, 02:00
Zitat von Thomas233:
in meinem derzeitigen Projekt müsste ich eine Dll mehrmals laden können. Wenn ich eine Dll aber nun per "LoadLibrary" Aufruf mehrmals diesselbe Dll im Hauptpgoramm laden will so bekomme ich immer dasselbe Handle zurück, d.h. die Dll wird tatsächlich nur einmal in den Speicher geladen. Mein Programm erfordert es aber das diese mehrmals geladen werden müsste (es handelt sich dabei um eine Plugin-Dll die mehrmals und gleichzeitig mit verschiedenen Zuständen/Daten arbeiten müsste).
Und wieso kann die nicht gleichzeitig als eine Instanz in verschiedenen Zuständen arbeiten? Das hätte ich doch mal gern erklärt.

Zitat von Thomas233:
Leider ist das nicht anders möglich da die Verwaltung der verschiedenen Instanzen und damit Daten in der Dll um einiges aufwändiger und auch Speicherintensiver wäre (ich weiss natürlich das man das normalerweise nicht so machen sollte).
Häh?
Speicheraufwendiger wird's, wenn du die DLL wirklich mehrfach an verschiedenen Stellen in den Prozeß lädst.

Zitat von Thomas233:
D.h. nun meine Frage an euch: Wie könnte ich das bewerkstelligen ?
Umbenennen der DLL on-the-fly (kannst auch andere Endungen als .dll benutzen).

Aber nochmal: das ist Quark, weil dann garantiert alle anderen Instanzen deiner DLL reloziert werden müssen. Außerdem bin ich mir jetzt nicht ganz sicher, weil es in der Exporttabelle m.E. nach den Namen der DLL nochmal im Orginal gibt - den bekommste durch Umbenennen auch nicht weg.
  Mit Zitat antworten Zitat