Ich habe einige DLLs wie dies angeordnet habe:Kann ich separate DLLs erhalten, um ihre importierten DLLs getrennt aufzulösen?
lib.dll
- 3rd-Party-DLL mit einer Importbibliothek, die Sie verlinken aufplugin.dll
- eine DLL, die entworfen, umlib.dll
, ein Plugin Links zu ladende in ein Host-Programm mitLoadLibrary
other\plugin.dll
- otherplugin Kopie vonlib.dll
- einem anderen Plugin-DLL, die
other\lib.dll
-lib.dll
Links
(Dies sind nur gewöhnliche DLLs mit einigen exportierten Funktionen - ich bin mit COM oder irgendetwas nicht.)
In meinem Test-Setup, wenn ich LoadLibrary
verwenden plugin.dll
, zu laden und LoadLibrary
dann other\plugin.dll
zu laden verwenden Es scheint, dass beide die gleiche geladene Kopie von lib.dll
teilen. Aber ich brauche tatsächlich other\plugin.dll
zu laden other\lib.dll
- Ich möchte nicht die Bibliotheken geteilt werden.
Kann ich das tun? (Idealerweise ohne Neukompilierung lib.dll
.)
'lib.dll' wird implizit über die Importbibliothek geladen. –
Nun, möglicherweise stecken Sie "plugin.dll" in einer privaten Assembly nebeneinander oder verwenden die Aktivierungskontext-API, um die Load der plugin.dll in einem anderen Aktivierungskontext einzubinden. Ich habe viele Antworten auf diese Art von Fragen, aber alle 5 Jahre alt und ich bin gerade jetzt mein Wissen zu diesem Thema ist so abgestanden, dass sie mich alle verwirren: P –
Gefunden eins: http://StackOverflow.com/Questions/3832290/Ändern-Dll-Suchpfad-für-statisch-verbunden-dll/3832428 # 3832428 –