Especificando as DLLs para carregamento de atraso
Você pode especificar quais DLLs para atrasar a carregar com o /delayload:dllname opção de vinculador. Se você não pretende usar sua própria versão de uma função auxiliar, você também deve vincular o seu programa com Delayimp.lib.
Este é um exemplo simples de carregar uma DLL de atraso:
// 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);
}
Crie a versão de depuração do projeto. Percorra o código usando o depurador e você irá notar que User32. dll é carregado somente quando você faz a chamada para MessageBox.