Поддержка компоновщика для DLLs, загружаемых с задержкой

Компоновщик Visual C++ сейчас поддерживает загрузку DLLs с задержкой. Это снимает необходимость использовать функции Windows SDK LoadLibrary и GetProcAddress для реализации загрузки DLL с задержкой.

В предыдущих версиях Visual C++ 6.0 был только один способ загрузить DLL во время выполнения: использовать LoadLibrary и GetProcAddress; операционная система могла бы загрузить DLL при выполнении или использовать загруженные модули DLL.

Начиная с Visual C++ 6.0, при статической компоновке с DLL компоновщик предоставляет параметры для задержки загрузки DLL до тех пор, пока программа не вызовет функцию, в которой содержится DLL.

Приложение может задержать загрузку DLL при помощи параметра компоновщика /DELAYLOAD (Delay Load Import) со вспомогательной функцией (реализацией по умолчанию предоставляемой Visual C++). Вспомогательная функция будет загружать DLL во время выполнения, вызывая LoadLibrary и GetProcAddress.

Следует установить задержку в загрузке DLL, если:

  • Ваша программа может не вызвать функцию в DLL.

  • Функция в DLL может не получить вызов до тех пор, пока не будет выполняться в программе.

Задержка в загрузке DLL может быть указана при построении .EXE или .DLL проекта. Проекту .DLL, который задерживает загрузку одного или более DLLs, не следует самому вызывать загружаемую с задержкой точки входа в Dllmain.

В следующих подразделах приведено описание DLLs, загружаемых с задержкой:

См. также

Основные понятия

DLL в Visual C++

Компоновка