AfxTermExtensionModule
呼叫此函式以 MFC 清理擴充程式 DLL 時,允許從 DLL 的每個處理序中斷連結 (當處理程序結束時,或當 DLL 已卸載的結果時,會發生的事AfxFreeLibrary呼叫)。
void AFXAPI AfxTermExtensionModule(
AFX_EXTENSION_MODULE& state,
BOOL bAll = FALSE
);
參數
state
參考 AFX_EXTENSION_MODULE 結構,其中包含的擴充 DLL 模組狀態。法界聖骸
如果 ,則為 TRUE、 清除所有的擴充 DLL 模組。 否則,清除目前 DLL 模組。
備註
AfxTermExtensionModule將會刪除任何附加到該模組的本機存放區,並移除的訊息對應快取中的任何項目。 例如:
static AFX_EXTENSION_MODULE NVC_MFC_DLLDLL = { NULL, NULL };
extern "C" int APIENTRY
DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
// Remove this if you use lpReserved
UNREFERENCED_PARAMETER(lpReserved);
if (dwReason == DLL_PROCESS_ATTACH)
{
TRACE0("NVC_MFC_DLL.DLL Initializing!\n");
// Extension DLL one-time initialization
if (!AfxInitExtensionModule(NVC_MFC_DLLDLL, hInstance))
return 0;
new CMyDynLinkLibrary(NVC_MFC_DLLDLL);
}
else if (dwReason == DLL_PROCESS_DETACH)
{
TRACE0("NVC_MFC_DLL.DLL Terminating!\n");
// Terminate the library before destructors are called
AfxTermExtensionModule(NVC_MFC_DLLDLL);
}
return 1; // ok
}
如果您的應用程式載入,並以動態方式釋出的擴充 Dll,就一定要呼叫AfxTermExtensionModule。 大部分的擴充 Dll 不會以動態方式載入後 (通常,它們連結透過其匯入程式庫),以呼叫AfxTermExtensionModule通常並不需要。
MFC 擴充 Dll 必須呼叫 AfxInitExtensionModule 在其DllMain。 如果將匯出的 DLL CRuntimeClass 物件,或者有它自己的自訂資源,您還必須建立 CDynLinkLibrary 物件在DllMain。
需求
標頭: afxdll_.h