Поиск пути Windows в LoadLibrary с манифестом - PullRequest
3 голосов
/ 30 сентября 2008

Если вы вызываете LoadLibrary без пути (например, LoadLibrary("whatever.dll")), Windows обычно будет следовать своему стандартному алгоритму поиска, который используется для поиска EXE-файлов.

У меня такой вопрос: предположим, что манифест приложения указывает конкретную версию системной DLL, скажем, comctl32.dll 6.0. В этом случае LoadLibrary("comctl32.dll") сразу перейдет в правильную папку рядом или все еще будет выполнять поиск?

Ответы [ 2 ]

5 голосов
/ 30 сентября 2008

С Microsoft:

Приложения могут контролировать местоположение, из которого загружается DLL, указав полный путь, используя перенаправление DLL или используя манифест. Если ни один из этих методов не используется, система выполняет поиск DLL во время загрузки, как описано в этом разделе.

Так что да, если манифест присутствует, он будет напрямую перемещаться в папку SxS.

0 голосов
/ 13 сентября 2010

Чтобы проверить загрузчик при возникновении проблем с отсутствующими библиотеками, вы можете использовать функцию "sxstrace". www.codeproject.com / KB / DLL / QueryAssemblyIdentities.aspx дает некоторые сведения о зависимостях между манифестом и WinSxs.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...