Windows-Pfad in Loadlibrary mit manifester Suche
-
03-07-2019 - |
Frage
Wenn Sie LoadLibrary
ohne Pfad nennen (zum Beispiel LoadLibrary("whatever.dll")
, wird Windows im Allgemeinen seines Standard-Suchalgorithmus folgen, das gleiche verwendet es EXE-Dateien zu finden.
Meine Frage ist: Angenommen, eine Anwendung manifest gibt an eine bestimmte Version eines System-DLL gibt, sagt sie, comctl32.dll 6.0. In diesem Fall wird LoadLibrary("comctl32.dll")
, geht sofort auf die richtigen Seite-an-Seite-Ordner, oder ist es immer noch eine Art von Suche durchführen?
Lösung
Anwendungen können die Position steuern, von dem eine DLL, indem Sie einen vollständigen Pfad geladen wird, DLL-Umleitung verwendet wird, oder indem man ein Manifest verwendet wird. Wenn keine dieser Methoden verwendet werden, die Zeit sucht das System nach der DLL bei Belastung wie in diesem Thema beschrieben.
Also ja, wenn ein Manifest vorhanden ist, wird es direkt an den SxS-Ordner gehen.
Andere Tipps
den Lader zu sondieren, wenn Probleme mit fehlenden Bibliotheken haben, können Sie die „sxstrace“ nutzen. www.codeproject.com/KB/DLL/QueryAssemblyIdentities.aspx gibt einige Details über die Abhängigkeiten zwischen manifesten und WinSxS.