Поделиться через


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

Обновлен: Ноябрь 2007

Библиотеки DLL, которые будут загружаться с задержкой, можно указать с помощью параметра компоновщика /delayload:dllname. Если не планируется использование собственной версии вспомогательной функции, необходимо также скомпоновать программу с библиотекой Delayimp.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, загружаемых с задержкой