初始化非 MFC DLL

更新:2007 年 11 月

为初始化非 MFC DLL,DLL 源代码必须包含一个名为 DllMain 的函数。下列代码显示了一个基本主干,说明 DllMain 定义的大概样子:

BOOL APIENTRY DllMain(HANDLE hModule, 
                      DWORD  ul_reason_for_call, 
                      LPVOID lpReserved)
{
    switch( ul_reason_for_call ) {
    case DLL_PROCESS_ATTACH:
    ...
    case DLL_THREAD_ATTACH:
    ...
    case DLL_THREAD_DETACH:
    ...
    case DLL_PROCESS_DETACH:
    ...
    }
    return TRUE;
}
说明:

DllEntryPoint 的 Windows SDK 文档指出,必须在链接器命令行上用 /ENTRY 选项指定入口点函数的实际名称。使用 Visual C++ 时,如果入口点函数的名称为 DllMain,则无需使用 /ENTRY 选项。实际上,如果使用了 /ENTRY 选项,但没有将入口点函数命名为 DllMain,则 C 运行时库将不会正确初始化。

您想进一步了解什么?

请参见

概念

初始化 DLL