Порядок поиска Dll-ек
На заметочку, в каком порядке Windows ищет нужные dll-файлы:
- Каталог, в котором находится исполняемый модуль текущего процесса
- Системный каталог Windows. Обычно это
C:\Windows\System32 (или SysWOW64 для 32-битных DLL в 64-битной системе)
- 16-битный системный каталог Windows. Обычно это
C:\Windows\System
- Каталог Windows. Обычно это
C:\Windows
- Текущий каталог
- Каталоги, перечисленные в переменной окружения PATH
Но это не полный порядок!
Это порядок, скажем так, с точки зрения пользователя. Иными словами "Куда положить DLL, чтобы приложение ее увидело?"
Сама система перед указанным выше порядком проверяет еще другие места:
- DLL redirection - проверка на локальные редиректы DLL
- API sets - проверка на перенаправления через API sets
- SxS manifest redirection - для desktop-приложений перенаправление через Side-by-Side манифесты
- Loaded-module list - список уже загруженных модулей
- Known DLLs - список известных системных DLL
И только потом по списку, указанному в начале этой заметки.
Ссылка на документацию.
Опубликовано: 14.01.2023 в 18:39