初始化非 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 运行时库将不会正确初始化。 |