Как найти dll программы

Порядок поиска библиотеки динамической компоновки (DLL)

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

Факторы, влияющие на поиск

Следующие факторы влияют на поиск библиотеки DLL в системе:

  • Если библиотека DLL с тем же именем модуля уже загружена в память, система проверяет только перенаправление и манифест перед разрешением загруженной библиотеки DLL независимо от того, в каком каталоге он находится. Система не выполняет поиск библиотеки DLL.
  • Если библиотека DLL находится в списке известных библиотек DLL для версии Windows, в которой выполняется приложение, система использует свою копию известной библиотеки DLL (и зависимые библиотеки DLL, если таковые есть) вместо поиска библиотек DLL. Список известных библиотек DLL в текущей системе см. в следующем разделе реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs.
  • Если библиотека DLL имеет зависимости, система ищет зависимые библиотеки DLL, как если бы они были загружены только с именами модулей. Это верно, даже если первая библиотека DLL была загружена, указав полный путь.

Порядок поиска приложений UWP

Если приложение UWP для Windows 10 (или приложение Магазина для Windows 8.x) загружает упакованный модуль путем вызова функции LoadPackagedLibrary, библиотека DLL должна находиться в графе зависимостей пакета процесса. Дополнительные сведения см. в разделе LoadPackagedLibrary. Когда приложение UWP загружает модуль другими средствами и не задает полный путь, система выполняет поиск библиотеки DLL и его зависимостей во время загрузки, как описано в этом разделе.

Как скачать libcef.dll чтоб исправить ошибку: на компьютере отсутствует файл

Перед поиском библиотеки DLL система проверяет следующее:

  • Если библиотека DLL с тем же именем модуля уже загружена в память, система использует загруженную библиотеку DLL независимо от того, в каком каталоге он находится. Система не выполняет поиск библиотеки DLL.
  • Если библиотека DLL находится в списке известных библиотек DLL для версии Windows, в которой выполняется приложение, система использует свою копию известной библиотеки DLL (и зависимые библиотеки DLL, если таковые есть). Система не выполняет поиск библиотеки DLL. Список известных библиотек DLL в текущей системе см. в следующем разделе реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs.

Если система должна искать модуль или его зависимости, он всегда использует порядок поиска приложений UWP, даже если зависимость не является кодом приложения UWP.

Стандартный порядок поиска для приложений UWP

Если модуль еще не загружен или в списке известных библиотек DLL, система выполняет поиск в следующих расположениях в следующем порядке:

Как скачать binkw32.dll и исправить ошибку в Windows 11/10 и 7

  1. Граф зависимостей пакета процесса. Это пакет приложения и все зависимости, указанные в разделе манифеста пакета приложения. Зависимости выполняются в том порядке, в который они отображаются в манифесте.
  2. Каталог, из который был загружен вызывающий процесс.
  3. Системный каталог (%SystemRoot%system32).

Если библиотека DLL имеет зависимости, система ищет зависимые библиотеки DLL, как если бы они были загружены только с именами модулей. Это верно, даже если первая библиотека DLL была загружена, указав полный путь.

Альтернативный порядок поиска для приложений UWP

Если модуль изменяет стандартный порядок поиска, вызывая функцию LoadLibraryEx с LOAD_WITH_ALTERED_SEARCH_PATH, система выполняет поиск в каталоге, из указанного модуля был загружен вместо каталога вызывающего процесса. Система выполняет поиск в следующих расположениях в следующем порядке:

  1. Граф зависимостей пакета процесса. Это пакет приложения и все зависимости, указанные в разделе манифеста пакета приложения. Зависимости выполняются в том порядке, в который они отображаются в манифесте.
  2. Каталог, из который был загружен указанный модуль.
  3. Системный каталог (%SystemRoot%system32).

Порядок поиска классических приложений

Классические приложения могут управлять расположением, из которого загружается библиотека DLL, указав полный путь, используя перенаправление БИБЛИОТЕК DLL или используя манифест. Если ни один из этих методов не используется, система выполняет поиск библиотеки DLL во время загрузки, как описано в этом разделе.

Перед поиском библиотеки DLL система проверяет следующее:

  • Если библиотека DLL с тем же именем модуля уже загружена в память, система использует загруженную библиотеку DLL независимо от того, в каком каталоге он находится. Система не выполняет поиск библиотеки DLL.
  • Если библиотека DLL находится в списке известных библиотек DLL для версии Windows, в которой выполняется приложение, система использует свою копию известной библиотеки DLL (и зависимые библиотеки DLL, если таковые есть). Система не выполняет поиск библиотеки DLL. Список известных библиотек DLL в текущей системе см. в следующем разделе реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs.

Если библиотека DLL имеет зависимости, система ищет зависимые библиотеки DLL, как если бы они были загружены только с именами модулей. Это верно, даже если первая библиотека DLL была загружена, указав полный путь.

Если злоумышленник получает контроль над одним из каталогов, на которые выполняется поиск, он может поместить вредоносную копию библиотеки DLL в этот каталог. Способы предотвращения таких атак см. в разделе «Безопасность библиотеки динамической компоновки».

Стандартный порядок поиска классических приложений

Стандартный порядок поиска БИБЛИОТЕК DLL, используемый системой, зависит от того, включен или отключен безопасный режим поиска DLL. Сейф режиме поиска библиотеки DLL помещает текущий каталог пользователя в порядок поиска.

Сейф режим поиска библиотеки DLL включен по умолчанию. Чтобы отключить эту функцию, создайте HKEY_LOCAL_MACHINESystemCurrentControlSetControlSession Managerзначение реестра SafeDllSearchMode и задайте для него значение 0. Вызов функции SetDllDirectory фактически отключает SafeDllSearchMode , пока указанный каталог находится в пути поиска и изменяет порядок поиска, как описано в этом разделе.

Если параметр SafeDllSearchMode включен, порядок поиска выглядит следующим образом:

  1. Каталог, из которого загружено приложение.
  2. Системный каталог. Используйте функцию GetSystemDirectory , чтобы получить путь к этому каталогу.
  3. 16-разрядный системный каталог. Нет функции, которая получает путь к этому каталогу, но выполняется поиск.
  4. Каталог Windows. Используйте функцию GetWindowsDirectory , чтобы получить путь к этому каталогу.
  5. Текущий каталог.
  6. Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что это не включает путь для каждого приложения, указанный в разделе реестра путей приложений . Ключ пути к приложению не используется при вычислении пути поиска библиотеки DLL.

Если SafeDllSearchMode отключен, порядок поиска выглядит следующим образом:

  1. Каталог, из которого загружено приложение.
  2. Текущий каталог.
  3. Системный каталог. Используйте функцию GetSystemDirectory , чтобы получить путь к этому каталогу.
  4. 16-разрядный системный каталог. Нет функции, которая получает путь к этому каталогу, но выполняется поиск.
  5. Каталог Windows. Используйте функцию GetWindowsDirectory , чтобы получить путь к этому каталогу.
  6. Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что это не включает путь для каждого приложения, указанный в разделе реестра путей приложений . Ключ пути к приложению не используется при вычислении пути поиска библиотеки DLL.

Альтернативный порядок поиска классических приложений

Стандартный порядок поиска, используемый системой, можно изменить, вызвав функцию LoadLibraryEx с LOAD_WITH_ALTERED_SEARCH_PATH. Стандартный порядок поиска также можно изменить, вызвав функцию SetDllDirectory .

Стандартный порядок поиска процесса также будет затронут вызовом функции SetDllDirectory в родительском процессе перед началом текущего процесса.

Если указать альтернативную стратегию поиска, ее поведение продолжается до тех пор, пока не будут расположены все связанные исполняемые модули. После того как система начнет обработку подпрограмм инициализации БИБЛИОТЕК DLL, система переходит к стандартной стратегии поиска.

Функция LoadLibraryEx поддерживает альтернативный порядок поиска, если вызов указывает LOAD_WITH_ALTERED_SEARCH_PATH , а параметр lpFileName задает абсолютный путь.

Обратите внимание, что стандартная стратегия поиска и альтернативная стратегия поиска, указанная LoadLibraryEx с LOAD_WITH_ALTERED_SEARCH_PATH , отличается только одним способом: стандартный поиск начинается в каталоге вызывающего приложения, а альтернативный поиск начинается в каталоге исполняемого модуля, загружаемого LoadLibraryEx .

Если параметр SafeDllSearchMode включен, альтернативный порядок поиска выглядит следующим образом:

  1. Каталог, указанный lpFileName.
  2. Системный каталог. Используйте функцию GetSystemDirectory , чтобы получить путь к этому каталогу.
  3. 16-разрядный системный каталог. Нет функции, которая получает путь к этому каталогу, но выполняется поиск.
  4. Каталог Windows. Используйте функцию GetWindowsDirectory , чтобы получить путь к этому каталогу.
  5. Текущий каталог.
  6. Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что это не включает путь для каждого приложения, указанный в разделе реестра путей приложений . Ключ пути к приложению не используется при вычислении пути поиска библиотеки DLL.
Читайте также:
Найти минимальный набор тестов для программы нахождения вещественных корней квадратного уравнения

Если SafeDllSearchMode отключен, альтернативный порядок поиска выглядит следующим образом:

  1. Каталог, указанный lpFileName.
  2. Текущий каталог.
  3. Системный каталог. Используйте функцию GetSystemDirectory , чтобы получить путь к этому каталогу.
  4. 16-разрядный системный каталог. Нет функции, которая получает путь к этому каталогу, но выполняется поиск.
  5. Каталог Windows. Используйте функцию GetWindowsDirectory , чтобы получить путь к этому каталогу.
  6. Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что это не включает путь для каждого приложения, указанный в разделе реестра путей приложений . Ключ пути к приложению не используется при вычислении пути поиска библиотеки DLL.

Функция SetDllDirectory поддерживает альтернативный порядок поиска, если параметр lpPathName указывает путь. Альтернативный порядок поиска выглядит следующим образом:

  1. Каталог, из которого загружено приложение.
  2. Каталог, указанный параметром lpPathNameобъекта SetDllDirectory.
  3. Системный каталог. Используйте функцию GetSystemDirectory , чтобы получить путь к этому каталогу. Имя этого каталога — System32.
  4. 16-разрядный системный каталог. Нет функции, которая получает путь к этому каталогу, но выполняется поиск. Имя этого каталога — System.
  5. Каталог Windows. Используйте функцию GetWindowsDirectory , чтобы получить путь к этому каталогу.
  6. Каталоги, перечисленные в переменной среды PATH. Обратите внимание, что это не включает путь для каждого приложения, указанный в разделе реестра путей приложений . Ключ пути к приложению не используется при вычислении пути поиска библиотеки DLL.

Если параметр lpPathName является пустой строкой, вызов удаляет текущий каталог из порядка поиска.

SetDllDirectory эффективно отключает безопасный режим поиска DLL, пока указанный каталог находится в пути поиска. Чтобы восстановить безопасный режим поиска DLL на основе значения реестра SafeDllSearchMode и восстановить текущий каталог в порядке поиска, вызовите SetDllDirectory с именем lpPathName как NULL.

Приложение может указать порядок поиска с помощью одного или нескольких флагов LOAD_LIBRARY_SEARCH с функцией LoadLibraryEx . Приложение также может использовать флаги LOAD_LIBRARY_SEARCH с функцией SetDefaultDllDirectories для установления порядка поиска dll для процесса. Приложение может указать дополнительные каталоги для порядка поиска БИБЛИОТЕК DLL процесса с помощью функций AddDllDirectory или SetDllDirectory .

Каталоги, в которых выполняется поиск, зависят от флагов, указанных с помощью SetDefaultDllDirectories или LoadLibraryEx. Если используется несколько флагов, соответствующие каталоги выполняются в следующем порядке:

  1. Каталог, содержащий библиотеку DLL (LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR). В этом каталоге выполняется поиск только зависимостей библиотеки DLL для загрузки.
  2. Каталог приложения (LOAD_LIBRARY_SEARCH_APPLICATION_DIR).
  3. Пути, явно добавленные с помощью функции AddDllDirectory (LOAD_LIBRARY_SEARCH_USER_DIRS) или функции SetDllDirectory . Если добавлено несколько путей, порядок поиска путей не указан.
  4. Системный каталог (LOAD_LIBRARY_SEARCH_SYSTEM32).

Если приложение не вызывает LoadLibraryEx с флагами LOAD_LIBRARY_SEARCH или устанавливает порядок поиска библиотек DLL для процесса, система выполняет поиск библиотек DLL с помощью стандартного порядка поиска или альтернативного порядка поиска.

Как найти dll файл на компьютере

Зачастую требуется определить местонахождение того или иного DLL-файла на компьютере, например, для определения его полного адреса при удалении из системы. В большинстве случаев поможет стандартный поиск в Windows, который находится в верхней части Проводника.

Поле для поиска в Проводнике

Переходим в папку “Компьютер” и вводим в поле название искомого файла. Если вы не знаете точного наименования, можно ввести часть имени, тогда система выдаст вам все файлы, в названии которых есть указанный набор символов.

Результаты поиска по названию файла DLL

Многие файлы DLL по умолчанию являются системными или скрытыми. Включить их отображение можно в настройках системы, например, в «меню Пуск -> Панель управления -> Параметры папок -> Вид» для Windows 7.

Определив нужный файл, нужно нажать по нему правой кнопкой мыши и в контекстном меню нажать Расположение файла. Обратите внимание, что могут найтись множество версий файла, используемые разными программами и службами.

Нажимайте “Расположение файла” в контекстном меню

Открыв расположение файла, вы попадете в папку, в которой он находится. В верхней части указан полный адрес, который изначально был неизвестен. Именно он нам и понадобится.

Открытая папка с искомым файлом

Обратите внимание, что многие DLL-файлы по умолчанию скрыты. Чтобы включить их отображение, откройте Панель Управления, затем Параметры папок -> вкладка Вид и выберите пункт “Показывать скрытые файлы, папки и диски”.

Включаем отображение скрытых файлов и папок

Поздравляем! Теперь вы знаете, как определить местоположение DLL-файла, и сможете использовать это в работе. Напомним, что проще воспользоваться DLLSearch Client, который делает за вас всю работу по установке DLL библиотек.

Что такое библиотека DLL в Windows ?!

что такое dll в Windows

Аббревиатура DLL расшифровывается как Dynamic Link Library. На русский язык это можно перевести как «динамически подключаемая библиотека», которая содержит определенные данные (либо код) используемые несколькими приложениями и программами. Благодаря модульности, они позволяют «наращивать» функционал операционной системы, а значит — увеличить возможности ОС.
Причем вся «прелесть» такого подхода заключается в том, что один и тот же файл может использоваться совершенно разными типами программ — играми, офисом, графическим редактором и т.п.

В чем основные преимущества DLL?!

Я приведу только самые весомые плюсы использования динамически подключаемых библиотек:
— Способствуют более экономному и «правильному» использованию ресурсов.
— Обеспечение модульной архитектуры
— Простота установки и развертывания функционала
— Лёгкость обновления и расширения возможностей динамических библиотек
— Сокращение случаев дублирования кода
При нескольких программ с помощью той же библиотеки функций, библиотеки DLL можно уменьшить дублирование кода, который загружается на диске и в оперативной памяти.

К сожалению, есть и минусы:

— Снижение надёжности работы системы из-за угроз DLL HELL (одновременное использование программами разных версий одной и той же библиотеки, имеющих конфликт между собой)
— Конфликты библиотек
— Снижение безопасности системы из-за воздействия вирусов.

Где находятся DLL-файлы в Windows?!

Ещё с самых древних версий все наиболее важные для работы системы и прикладных программ библиотеки лежать в папке:

С появлением 64-битных версий Windows 7 и Windows 8 — добавилась ещё и папка:

Учитывая, что у большинства пользователей Windows система установлена на диске C:, то пути будут соответственно:

При установке пакетов, инсталлятор автоматически кидает в эти папки нужные DLL-ки.

Похожие публикации:

  1. Как отправить письмо вложением
  2. Как понять что от тебя скрыли сторис в инстаграм
  3. Как сохранить блок в автокаде под другим именем
  4. Как установить адб драйвер на компьютер винда 10

Источник: ifreeapps.ru

Порядок поиска DLL

[Операционная] система может содержать множество версий одной и той же динамически подключаемой библиотеки (DLL). Приложения могут контролировать местоположение, из которого DLL загружается, путем определения полного пути [к файлу DLL] или с помощью другого механизма, такого как манифест [файл на языке XML с информацией о приложении, в том числе может содержать информацию о необходимых приложению DLL] . Если эти методы не используются, система ищет DLL во время запуска программы так, как описано в этой статье.

  • факторы, влияющие на процесс поиска;
  • порядок поиска DLL для приложений «Windows Store»:
  • стандартный порядок поиска DLL для приложений «Windows Store»;
  • альтернативный порядок поиска DLL для приложений «Windows Store»;
  • стандартный порядок поиска DLL для приложений настольного компьютера;
  • альтернативный порядок поиска DLL для приложений настольного компьютера;
  • порядок поиска DLL с использованием флагов LOAD_LIBRARY_SEARCH.
  • если DLL с тем же самым именем модуля уже загружена в память, система проверит только [следует ли выполнить] перенаправление [перенаправление включается наличием в папке с исполняемым файлом приложения пустого файла с таким же именем, как у приложения, и расширением .local и указывает системе начать поиск DLL с папки, в которой находится этот файл .local ] и манифест [на наличие указаний о местонахождении нужной DLL] и [при отсутствии перенаправления и манифеста] будет считать результатом поиска загруженную DLL, при этом не будет иметь значения, в каком каталоге эта загруженная DLL находится. Система не станет выполнять других действий по поиску DLL;
  • если DLL есть в списке библиотек DLL, известных той версии операционной системы Windows, в которой запущено приложение, система использует свою копию известной DLL (и свои копии библиотек DLL, от которых эта известная DLL зависит, если таковые имеются) вместо того, чтобы искать эту DLL. Увидеть список известных текущей системе DLL можно, обратившись к следующему ключу реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControl SetControlSession ManagerKnownDLLs;
  • если DLL имеет зависимости [от других DLL] , система будет искать библиотеки DLL, от которых зависит исходная, так, как если бы эти библиотеки загружались с указанием только имен их модулей. Это правило остается верным, даже если исходная DLL загружалась с указанием полного пути к ней.

Когда приложение «Windows Store» загружает упакованный модуль [DLL] посредством вызова функции LoadPackagedLibrary, DLL должна находиться в графе зависимостей пакета для процесса. Подробнее об этом читайте в описании функции LoadPackagedLibrary. Когда приложение «Windows Store» загружает модуль [DLL] другими средствами и не указывает полный путь к нему, система ищет DLL и ее зависимости [модули, от которых эта DLL зависит] во время запуска программы так, как описано в этом разделе.

Читайте также:
Лучшие программы для создания мультфильмов на русском

Замечание для пользователей предыдущих по отношению к свежим на дату написания статьи версиям операционных систем Windows (Windows 7 (вики: с 22.10.2009 г.), Windows Server 2008 R2 (вики: с 22.10.2009 г.), Windows Vista (вики: с 30.11.2006 г.), Windows Server 2008 (вики: с 12.12.2008 г.), Windows Server 2003 (вики: с 24.04.2003 г.) и Windows XP (вики: с 24.08.2001 г.)): приложения «Windows Store» поддерживаются, начиная с операционных систем «Windows 8» (вики: с 26.10.2012 г.) и «Windows Server 2012» (вики: с 04.09.2012 г.).

  • если DLL с таким же именем модуля уже загружена в память, система будет использовать загруженную DLL, при этом не будет иметь значения, в каком каталоге эта загруженная DLL находится. Система не станет выполнять других действий по поиску DLL;
  • если DLL есть в списке библиотек DLL, известных той версии операционной системы Windows, в которой запущено приложение, система использует свою копию известной DLL (и свои копии библиотек DLL, от которых эта известная DLL зависит, если таковые имеются) вместо того, чтобы искать эту DLL. Увидеть список известных текущей системе DLL можно, обратившись к следующему ключу реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControl SetControlSession ManagerKnownDLLs.

Стандартный порядок поиска DLL для приложений «Windows Store»

  1. Граф зависимостей пакета для процесса. Местом поиска является пакет приложения плюс любые зависимости, отмеченные как в разделе манифеста пакета приложения. Зависимости ищутся системой в том порядке, в котором они появляются в манифесте;
  2. Каталог, из которого был загружен вызывающий DLL процесс;
  3. Системный каталог ( %SystemRoot%system32 ).

Альтернативный порядок поиска DLL для приложений «Windows Store»

  1. Граф зависимостей пакета для процесса. Местом поиска является пакет приложения плюс любые зависимости, отмеченные как в разделе манифеста пакета приложения. Зависимости ищутся системой в том порядке, в котором они появляются в манифесте;
  2. Каталог, из которого указанный [в параметре функции LoadLibraryEx] модуль был загружен;
  3. Системный каталог ( %SystemRoot%system32 ).

Приложения настольного компьютера [desktop applications] могут указывать место, из которого будет загружена DLL, посредством указания полного пути к DLL, могут использовать перенаправление поиска DLL, либо могут использовать манифест. Если ни один из этих методов не используется, система ищет DLL во время загрузки программы так, как описано в этом разделе.

  • если DLL с таким же именем модуля уже загружена в память, система будет использовать загруженную DLL, при этом не будет иметь значения, в каком каталоге эта загруженная DLL находится. Система не станет выполнять других действий по поиску DLL;
  • если DLL есть в списке библиотек DLL, известных той версии операционной системы Windows, в которой запущено приложение, система использует свою копию известной DLL (и свои копии библиотек DLL, от которых эта известная DLL зависит, если таковые имеются) вместо того, чтобы искать эту DLL. Увидеть список известных текущей системе DLL можно, обратившись к следующему ключу реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControl SetControlSession ManagerKnownDLLs.

Важное замечание. Если злоумышленник получит доступ к одному из каталогов, в которых выполняется поиск DLL, он может поместить в этот каталог вредоносную копию искомой DLL. Чтобы узнать способы предотвращения таких атак, читайте статью «Безопасность DLL».

Стандартный порядок поиска DLL для приложений настольного компьютера

Стандартный порядок поиска DLL, используемый системой, зависит от того, включен или выключен безопасный режим поиска DLL. Безопасный режим поиска DLL помещает текущий каталог пользователя позже в очередности хода поиска.

Безопасный режим поиска DLL по умолчанию включен. Чтобы его выключить, следует создать в реестре параметр HKEY_LOCAL_MACHINESystemCurrentControl SetControlSession ManagerSafeDllSearchMode и установить его значение в 0 (ноль). Вызов функции SetDllDirectory при ее успешном завершении отключает параметр реестра SafeDllSearchMode, в то время как указанный [в параметре функции SetDllDirectory] каталог находится в поисковом списке каталогов и изменяет порядок поиска так, как описано [далее] в этой статье.

Замечание для пользователей операционной системы Windows XP (вики: с 24.08.2001 г.; поддержка этой системы прекращена корпорацией «Microsoft» c 08.04.2014 г.): безопасный режим поиска DLL по умолчанию выключен. Чтобы включить его, следует создать параметр реестра SafeDllSearchMode и установить его значение в 1. Безопасный режим поиска DLL включен по умолчанию, начиная с «Windows XP» с установленным пакетом обновления SP2.

  1. Каталог, из которого загружено приложение;
  2. Системный каталог [обычно это каталог ..WindowsSystem32 , но не всегда] . Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу;
  3. Системный каталог для 16-разрядных библиотек DLL [обычно это каталог ..WindowsSystem , но не всегда] . Не существует функции [из набора Windows API] , которая получала бы путь к этому каталогу, но поиск в этом каталоге всё равно выполняется;
  4. Каталог операционной системы Windows [обычно это каталог ..Windows , но не всегда] . Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу;
  5. Текущий каталог;
  6. Каталоги, перечисленные в переменной среды PATH. Заметим, что эта переменная не включает путь, определенный в разрезе каждого приложения ключом реестра App Paths [HKEY_LOCAL_MACHINESOFTWAREMicrosoftW indowsCurrentVersionApp Paths] . Ключ реестра App Paths не используется при поиске DLL.
  1. Каталог, из которого загружено приложение;
  2. Текущий каталог;
  3. Системный каталог [обычно это каталог ..WindowsSystem32 , но не всегда] . Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу;
  4. Системный каталог для 16-разрядных библиотек DLL [обычно это каталог ..WindowsSystem , но не всегда] . Не существует функции [из набора Windows API] , которая получала бы путь к этому каталогу, но поиск в этом каталоге всё равно выполняется;
  5. Каталог операционной системы Windows [обычно это каталог ..Windows , но не всегда] . Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу;
  6. Каталоги, перечисленные в переменной среды PATH. Заметим, что эта переменная не включает путь, определенный в разрезе каждого приложения ключом реестра App Paths [HKEY_LOCAL_MACHINESOFTWAREMicrosoftW indowsCurrentVersionApp Paths] . Ключ реестра App Paths не используется при поиске DLL.

Стандартный порядок поиска DLL, используемый системой, может быть изменен с помощью вызова функции LoadLibraryEx с флагом LOAD_WITH_ALTERED_SEARCH_PATH. Стандартный порядок поиска DLL также может быть изменен с помощью вызова функции SetDllDirectory.

Замечание: стандартный порядок поиска DLL для процесса попадет под влияние вызова функции SetDllDirectory в родительском процессе, если этот вызов был выполнен до запуска текущего процесса.

Замечание для пользователей операционной системы Windows XP (вики: с 24.08.2001 г.; поддержка этой системы прекращена корпорацией «Microsoft» c 08.04.2014 г.): изменение стандартного порядка поиска DLL с помощью вызова функции SetDllDirectory не поддерживалось до «Windows XP» с установленным пакетом обновления SP1.

Если вы включили стратегию альтернативного порядка поиска DLL, она будет продолжать своё действие до того момента, пока все соответствующие исполняемые модули не будут найдены. После того, как система запустит в работу подпрограммы инициализации DLL, она вернется к стратегии стандартного порядка поиска DLL.

Функция LoadLibraryEx поддерживает альтернативный порядок поиска DLL, если она вызывается с флагом LOAD_WITH_ALTERED_SEARCH_PATH и в ее параметре lpFileName указан абсолютный путь.

Заметим, что стратегия стандартного порядка поиска DLL и стратегия альтернативного порядка поиска DLL, установленная функцией LoadLibraryEx с флагом LOAD_WITH_ALTERED_SEARCH_PATH, различаются только в одном: стандартный порядок поиска DLL начинается с каталога вызывающего приложения, а альтернативный порядок поиска DLL начинается с каталога исполняемого модуля, загружаемого функцией LoadLibraryEx.

  1. Каталог, определенный параметром lpFileName функции LoadLibraryEx;
  2. Системный каталог [обычно это каталог ..WindowsSystem32 , но не всегда] . Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу;
  3. Системный каталог для 16-разрядных библиотек DLL [обычно это каталог ..WindowsSystem , но не всегда] . Не существует функции [из набора Windows API] , которая получала бы путь к этому каталогу, но поиск в этом каталоге всё равно выполняется;
  4. Каталог операционной системы Windows [обычно это каталог ..Windows , но не всегда] . Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу;
  5. Текущий каталог;
  6. Каталоги, перечисленные в переменной среды PATH. Заметим, что эта переменная не включает путь, определенный в разрезе каждого приложения ключом реестра App Paths [HKEY_LOCAL_MACHINESOFTWAREMicrosoftW indowsCurrentVersionApp Paths] . Ключ реестра App Paths не используется при поиске DLL.
  1. Каталог, определенный параметром lpFileName функции LoadLibraryEx;
  2. Текущий каталог;
  3. Системный каталог [обычно это каталог ..WindowsSystem32 , но не всегда] . Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу;
  4. Системный каталог для 16-разрядных библиотек DLL [обычно это каталог ..WindowsSystem , но не всегда] . Не существует функции [из набора Windows API] , которая получала бы путь к этому каталогу, но поиск в этом каталоге всё равно выполняется;
  5. Каталог операционной системы Windows [обычно это каталог ..Windows , но не всегда] . Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу;
  6. Каталоги, перечисленные в переменной среды PATH. Заметим, что эта переменная не включает путь, определенный в разрезе каждого приложения ключом реестра App Paths [HKEY_LOCAL_MACHINESOFTWAREMicrosoftW indowsCurrentVersionApp Paths] . Ключ реестра App Paths не используется при поиске DLL.
  1. Каталог, из которого загружено приложение;
  2. Каталог, указанный в параметре lpPathName функции SetDllDirectory;
  3. Системный каталог [обычно это каталог ..WindowsSystem32 , но не всегда] . Используйте функцию GetSystemDirectory, чтобы получить путь к этому каталогу;
  4. Системный каталог для 16-разрядных библиотек DLL [обычно это каталог ..WindowsSystem , но не всегда] . Не существует функции [из набора Windows API] , которая получала бы путь к этому каталогу, но поиск в этом каталоге всё равно выполняется;
  5. Каталог операционной системы Windows [обычно это каталог ..Windows , но не всегда] . Используйте функцию GetWindowsDirectory, чтобы получить путь к этому каталогу;
  6. Каталоги, перечисленные в переменной среды PATH. Заметим, что эта переменная не включает путь, определенный в разрезе каждого приложения ключом реестра App Paths [HKEY_LOCAL_MACHINESOFTWAREMicrosoftW indowsCurrentVersionApp Paths] . Ключ реестра App Paths не используется при поиске DLL.
Читайте также:
Программа для компьютера как Whatsapp

Функция SetDllDirectory в случае своей успешной отработки выключает безопасный режим поиска DLL, а указанный в ее параметре каталог включается в поисковый список каталогов. Чтобы восстановить безопасный режим поиска DLL, основанный на параметре реестра SafeDllSearchMode, и вернуть текущий каталог в поисковый список каталогов, следует вызвать функцию SetDllDirectory с ее параметром lpPathName, установленным в значение NULL.

Порядок поиска DLL с использованием флагов LOAD_LIBRARY_SEARCH

Приложение может определить порядок поиска DLL, используя один или более флагов LOAD_LIBRARY_SEARCH функции LoadLibraryEx. Приложение также может использовать флаги LOAD_LIBRARY_SEARCH в качестве параметра функции SetDefaultDllDirectories, чтобы настроить порядок поиска DLL для процесса. Приложение может задать дополнительные каталоги для настройки порядка поиска DLL, нужных процессу, с помощью функций AddDllDirectory или SetDllDirectory.

Замечание для пользователей предыдущих по отношению к свежим на дату написания статьи версиям операционных систем Windows (Windows 7 (вики: с 22.10.2009 г.), Windows Server 2008 R2 (вики: с 22.10.2009 г.), Windows Vista (вики: с 30.11.2006 г.), Windows Server 2008 (вики: с 12.12.2008 г.)): флаги LOAD_LIBRARY_SEARCH доступны на этих системах, если установлено обновление KB2533623.

Замечание для пользователей операционных систем Windows Server 2003 (вики: с 24.04.2003 г.) и Windows XP (вики: с 24.08.2001 г.): флаги LOAD_LIBRARY_SEARCH в этих системах не поддерживаются.

  1. Каталог, содержащий DLL (флаг LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR). В этом каталоге ищутся только DLL, от которых зависит загружаемая DLL;
  2. Каталог приложения (флаг LOAD_LIBRARY_SEARCH_APPLICATION_DIR);
  3. Пути, явно добавленные с помощью функции AddDllDirectory (флаг LOAD_LIBRARY_SEARCH_USER_DIRS) или функции SetDllDirectory. Если был добавлен больше, чем один путь, порядок, в котором эти пути обыскиваются, является неопределенным;
  4. Системный каталог (флаг LOAD_LIBRARY_SEARCH_SYSTEM32).

Источник: ilyachalov.livejournal.com

Как найти DLL файл

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

Где Windows ищет DLL-файлы

Перед тем как начать поиск, необходимо понимать, где находятся DLL-файлы на вашем компьютере. Windows хранит DLL-файлы в разных местах, включая папки системы и папки программ. Некоторые известные библиотеки DLL можно найти в реестре, разделе KnownDLLs. Это может помочь в поиске нужных файлов.

Как найти DLL файлы

Чтобы найти необходимые DLL-файлы, вы можете использовать обычный поиск на компьютере. Однако, необходимо помнить, что большинство файлов DLL по умолчанию являются системными или скрытыми. Чтобы найти их, нужно включить отображение скрытых файлов и папок в настройках системы. Также можно воспользоваться специальными инструментами, например, RegDllView.

Как посмотреть зарегистрированные DLL

RegDllView — небольшая бесплатная утилита для Windows, которая позволяет просмотреть список зарегистрированных в системе DLL-файлов. Для каждого файла отображается информация о времени и дате регистрации, а также список всех вхождений. RegDllView также позволяет в ручном режиме установить или удалить все записи для выбранных DLL-файлов.

Как проверить DLL файлы

Если вы не уверены в целостности или корректности DLL-файла, вы можете проверить его, используя Корзину Windows. Возможно, вы найдете нужный файл там. Чтобы вернуть файл из Корзины, необходимо перейти в нее на рабочем столе, найти нужный файл или папку и нажать правой кнопкой мыши на него. В контекстном меню выберите Восстановить.

Как определить используемые DLL

LoadedDllsView — бесплатное приложение для Windows, которое позволяет отслеживать использование DLL-файлов. Вы можете выбрать DLL-файл и посмотреть, какое приложение или процесс обращается к нему. Это может помочь найти и устранить проблемы с DLL-файлами.

Выводы

Поиск и определение DLL-файлов может быть сложной задачей для пользователей. Однако, с помощью инструментов, таких как RegDllView и LoadedDllsView, и реестра Windows, вы можете упростить поиск и определение DLL-файлов. Кроме того, не забывайте о проверке Корзины Windows, возможно вы найдете нужный файл там.

Как посмотреть DLL файл

Для просмотра файлов с расширением Dll можно воспользоваться программой ResourceHacker. Она имеет встроенную функцию декомпиляции некоторых файлов и позволяет осуществлять отладку dll. Главное преимущество этой программы заключается в том, что она полностью бесплатна, в отличие от многих других аналогичных вариантов. ResourceHacker достаточно популярен среди пользователей, которые занимаются разработкой и модификацией программного обеспечения, так как он позволяет легко просматривать и изменять текст и исходный код программ. В отличие от многих других инструментов, ResourceHacker может работать с файлами в формате exe, dll, asp, scr и многими другими, обеспечивая максимально удобный процесс работы со всеми видами файлов.

Где Windows ищет DLL

Windows операционная система, которая часто использует динамические библиотеки DLL для выполнения задач. Для того, чтобы найти требуемую библиотеку, Windows начинает поиск с определенных каталогов, включая системные и пользовательские папки. Однако поиск не ограничивается только на эти каталоги, так как Windows может проверить реестр хостов KnownDLLs, перед тем как начать поиск в файловой системе. В данном списке содержится перечень наиболее употребительных DLL файлов, которые могут быть обнаружены в общих операциях, и они находятся в папках Windows. Таким образом, для обнаружения нужной библиотеки DLL можно воспользоваться поиском в различных каталогах, а также проверить KnownDLLs в реестре Windows.

Как проверить DLL файлы

Для проверки DLL файлов вы можете обратиться к Корзине Windows. В ней возможно найдутся удаленные вами файлы. Для этого необходимо перейти к Корзине на рабочем столе, найти файл или папку, которую нужно восстановить, щелкнуть по ней правой кнопкой мыши и в контекстном меню выбрать Восстановить.

Также можно воспользоваться встроенной в проводник функцией поиска и проверки целостности системных файлов Windows, что позволит быстро и надежно проверить нужные DLL. Если же вы не нашли нужный файл в Корзине, можно обратиться к системной утилите «sfc», которая позволит провести проверку целостности файловой системы. Это позволит выявить и исправить ошибки в системных файлах, в том числе и в DLL.

Как посмотреть зарегистрированные DLL

RegDllView — это удобный и простой в использовании инструмент, который отображает список зарегистрированных в системе файлов dll/ocx/exe. Для каждого из этих файлов отображается дата и время их регистрации, а также список всех вхождений (CLSID/ProgID). Этот инструмент можно использовать для ручной установки или удаления записей для выбранных файлов dll/ocx. Таким образом, RegDllView позволит вам легко и быстро управлять файлами в вашей системе, а также отслеживать изменения, которые они могут претерпеть в процессе использования. Это очень полезный инструмент не только для профессиональных пользователей, но и для обычных пользователей, которые могут столкнуться с проблемами при работе с файлами dll/ocx/exe.

Чтобы найти DLL файл, следует знать, что большинство таких файлов являются системными или скрытыми. В системе Windows 7 можно включить отображение таких файлов в настройках папок, находящихся в Пуске — Панели управления — Параметры папок — Вид. Найдя нужный файл, нужно нажать на него правой кнопкой мыши и выбрать в контекстном меню пункт Расположение файла.

Данный пункт откроет окно со свойствами файла, в котором будет указан его полный путь. Также, можно воспользоваться специальными программами для поиска и управления файлами, которые могут помочь быстро найти нужный DLL файл. Необходимость в нахождении такого файла может возникнуть при установке программ или решении проблем со сбоями в работе компьютера.

  • Как проверить DLL файлы
  • Как посмотреть код DLL файла
  • Как посмотреть код dll
  • Где хранится база данных Android Studio

Источник: svyazin.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru