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.