Задание библиотек DLL с отложенной загрузкой

Вы можете указать, для каких библиотек DLL следует задержать загрузку с помощью параметра компоновщика /delayload:dllname. Если вы не планируете использовать собственную версию вспомогательной функции, необходимо также связать программу с библиотекой delayimp.lib (для классических приложений) или dloadhelper.lib (для приложений Магазина).

Ниже приведен простой пример задержки загрузки библиотеки DLL.

// cl t.cpp user32.lib delayimp.lib  /link /DELAYLOAD:user32.dll
#include <windows.h>
// uncomment these lines to remove .libs from command line
// #pragma comment(lib, "delayimp")
// #pragma comment(lib, "user32")

int main() {
   // user32.dll will load at this point
   MessageBox(NULL, "Hello", "Hello", MB_OK);
}

Создание ОТЛАДОЧНОЙ версии проекта. Просмотрите код, используя отладчик, и обратите внимание, что файл user32.dll загружается только при вызове MessageBox.

См. также

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

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