指定要延迟加载的 DLL

可以用 /delayload:dllname 链接器选项指定要延迟加载的 DLL。 如果您不打算用自己的 Helper 函数版本,也必须将您的程序与 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);
}

生成该项目的 DEBUG 版本。 使用调试器逐句通过代码,您将发现调用 MessageBox 时才加载 MessageBox

请参见

概念

链接器的延迟加载 DLL 支持