ilyachalov (ilyachalov) wrote,
ilyachalov
ilyachalov

Динамическое связывание во время запуска

Начало тут:
1. динамически подключаемые библиотеки;
2. о динамически подключаемых библиотеках подробнее;
3. преимущества динамического связывания;
4. создание динамически подключаемой библиотеки;
5. функция точки входа DLL.

Перевод с английского статьи от 31.05.2018 г. «Load-Time Dynamic Linking»:
https://docs.microsoft.com/ru-ru/windows/win32/dlls/load-time-dynamic-linking
(На данный момент на этом сайте нет перевода этой статьи на русский, есть только версия на английском.)

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

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

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

В заключение система корректирует таблицу адресов функций так, чтобы адреса функций соответствовали адресам функций, импортированных из DLL.

DLL отображается в виртуальное адресное пространство процесса во время его инициализации и загружается в физическую память [оперативная память компьютера], только когда в ней [библиотеке DLL] появляется необходимость.
Tags: Английский язык, Образование, Программирование
Subscribe

  • Marcus Nimbler закрыл свой канал на YouTube

    Любопытный персонаж из Германии по имени Marcus Nimbler вел свой канал на «YouTube» с 25 февраля 2016 г. За это время у него накопилось 131 тыс.…

  • Сбыча мелких мечт

    В качестве эпиграфа: Но со временем я заметил, что для этого мира такое положение дел вполне естественно в любой области. Поначалу всегда есть две…

  • От любви к любви, Никольский

    Сейчас делал приседания и слушал наше местное радио. Кстати, интересная тема для зожников: делать каждый день по 100 приседаний. Посоветовали на…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 0 comments