Вопрос

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

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

Это было полезно?

Решение

От Майкрософт:

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top