初始化规则 DLL
由于规则 DLL 具有 CWinApp 对象,故它们执行初始化和终止任务的位置应与 MFC 应用程序相同:在 DLL 的 CWinApp 派生类的 InitInstance 和 ExitInstance 成员函数中。 MFC 为 PROCESS_ATTACH 和 PROCESS_DETACH 提供了由 _DllMainCRTStartup 调用的 DllMain 函数,因此您不应编写自己的 DllMain 函数。 MFC 提供的 DllMain 函数在 DLL 被加载时调用 InitInstance,并在 DLL 被卸载之前调用 ExitInstance。
规则 DLL 可通过在自己的 InitInstance 函数中调用 TlsAlloc 和 TlsGetValue 来跟踪多线程。 这些函数允许 DLL 跟踪线程特定的数据。
在动态链接到 MFC 的规则 DLL 中,如果使用了任何 MFC OLE、MFC 数据库(或 DAO)或 MFC 套接字支持,则将分别自动链接 MFC 调试扩展 DLL MFCOxxD.dll、MFCDxxD.dll 和 MFCNxxD.dll(其中 xx 是版本号)。 对于在规则 DLL 的 CWinApp::InitInstance 中使用的上述每个 DLL,必须调用下列预定义的初始化函数之一。
MFC 类型支持 |
要调用的初始化函数 |
---|---|
MFC OLE (MFCOxxD.dll) |
AfxOleInitModule |
MFC 数据库 (MFCDxxD.dll) |
AfxDbInitModule |
MFC 套接字 (MFCNxxD.dll) |
AfxNetInitModule |