Compartilhar via


AfxTermExtensionModule

Chamar essa função para permitir a MFC a limpeza a DLL de extensão quando cada processo desanexar da DLL (que acontece quando o processo é encerrado, ou quando a DLL é descarregado no resultado de uma chamada de AfxFreeLibrary ).

void AFXAPI AfxTermExtensionModule( 
   AFX_EXTENSION_MODULE& state, 
   BOOL bAll  = FALSE  
);

Parâmetros

  • state
    Uma referência à estrutura de AFX_EXTENSION_MODULE que contém o estado de módulo DLL da extensão.

  • bola
    Se Verdadeirolimpeza, todos os módulos de DLL da extensão. Se não, limpeza somente o módulo atual da DLL.

Comentários

AfxTermExtensionModule excluirá qualquer local armazenamento anexado ao módulo e removerá todos entradas do cache da mensagem. Por exemplo:

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
}

Se seu aplicativo carrega e libera DLL de extensão dinamicamente, certifique-se de chamar AfxTermExtensionModule. Desde que a maioria de DLL de extensão não são carregados dinamicamente (normalmente, são vinculados por meio das bibliotecas de importação), a chamada para AfxTermExtensionModule geralmente não é necessário.

Dlls de extensão MFC precisam chamar AfxInitExtensionModule em seu DllMain. Se a DLL estiver exportando objetos de CRuntimeClass ou tem seus próprios recursos personalizados, você também precisará criar um objeto de CDynLinkLibrary em DllMain.

Requisitos

Header: afxdll_.h

Consulte também

Referência

AfxInitExtensionModule

Conceitos

Macros e globais MFC