Вопросы к Поиску с Алисой

Примеры ответов Поиска с Алисой
Главная / Технологии / Как работает динамическая библиотека ссылок в операционной системе Windows?
Вопрос для Поиска с Алисой
21 марта

Как работает динамическая библиотека ссылок в операционной системе Windows?

Алиса
На основе источников, возможны неточности

Динамическая библиотека ссылок (DLL) в операционной системе Windows работает за счёт динамического связывания. learn.microsoft.com В отличие от статического связывания, при котором компоновщик копирует код функции библиотеки в каждый модуль, который её вызывает, при динамическом связывании общий код помещается в один отдельный файл. learn.microsoft.com en.wikipedia.org

Существует два метода вызова функции в библиотеке DLL: learn.microsoft.com

  1. Динамическое связывание во время загрузки. learn.microsoft.com Модуль выполняет явные вызовы экспортированных функций DLL, как если бы они были локальными. learn.microsoft.com Для этого необходимо связать модуль с библиотекой импорта для библиотеки DLL, содержащей функции. learn.microsoft.com Библиотека импорта предоставляет системе сведения, необходимые для загрузки библиотеки DLL и поиска экспортированных функций DLL при загрузке приложения. learn.microsoft.com
  2. Динамическое связывание во время выполнения. learn.microsoft.com Модуль использует функцию LoadLibrary или LoadLibraryEx для загрузки библиотеки DLL во время выполнения. learn.microsoft.com После загрузки библиотеки DLL модуль вызывает функцию GetProcAddress, чтобы получить адреса экспортированных функций DLL. learn.microsoft.com

Некоторые особенности работы DLL в Windows:

  • Сопоставление с виртуальным адресным пространством. learn.microsoft.com Каждый процесс, загружающий библиотеку DLL, сопоставляет её с виртуальным адресным пространством. learn.microsoft.com После загрузки библиотеки DLL в виртуальный адрес процесс может вызывать экспортированные функции DLL. learn.microsoft.com
  • Поддержка количества ссылок. learn.microsoft.com Система поддерживает количество ссылок на каждый процесс для каждой библиотеки DLL. learn.microsoft.com Когда поток загружает библиотеку DLL, число ссылок увеличивается на единицу. learn.microsoft.com Когда процесс завершается или когда количество ссылок становится нулевым (только для динамической компоновки во время выполнения), библиотека DLL выгружается из виртуального адресного пространства процесса. learn.microsoft.com
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.
Задать новый вопрос
Задайте вопрос...
…и сразу получите ответ в Поиске с Алисой
Войдите, чтобы поставить лайк
С Яндекс ID это займёт пару секунд
Войти