共用方式為


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

請參閱

參考

AfxInitExtensionModule

概念

MFC 巨集和全域變數