AfxTermExtensionModule
Volání této funkce povolit MFC k vyčištění rozšiřující knihovny DLL v případě odpojí každého procesu z knihovny DLL (který se stane při ukončení procesu nebo knihovny DLL je vyloženo v důsledku AfxFreeLibrary volání).
void AFXAPI AfxTermExtensionModule(
AFX_EXTENSION_MODULE& state,
BOOL bAll = FALSE
);
Parametry
state
Odkaz na AFX_EXTENSION_MODULE struktury, který obsahuje stav modulu DLL rozšíření.Kuličky
Pokud TRUE, vyčistit všechny moduly DLL rozšíření.Jinak, vyčištění pouze aktuální knihovnu DLL.
Poznámky
AfxTermExtensionModuleOdstraní všechny místní úložiště připojená k modulu a odebrat všechny položky z mezipaměti mapování zprávy.Příklad:
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
}
Načtení a uvolnění dynamické knihovny DLL rozšíření aplikace nezapomeňte volání AfxTermExtensionModule.Protože většina příponu DLL není načten dynamicky (obvykle jsou propojeny prostřednictvím jejich import knihovny), volání AfxTermExtensionModule obvykle není nutné.
Rozšíření MFC knihovny DLL je nutné volat AfxInitExtensionModule v jejich DllMain.Pokud budete exportovat DLL CRuntimeClass objektů nebo má svůj vlastní zdroje je také nutné vytvořit CDynLinkLibrary objektu v DllMain.
Požadavky
Záhlaví: afxdll_.h