Partager via


AfxTermExtensionModule

Appelez cette fonction pour permettre aux MFC au nettoyage la DLL d'extension lorsque chaque processus se détache de la DLL (ce qui se produit lorsque la fin du processus, ou lorsque la DLL est déchargée de l'appel d' AfxFreeLibrary ).

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

Paramètres

  • state
    Une référence à la structure d' AFX_EXTENSION_MODULE qui contient l'état du module DLL d'extension.

  • balle
    Si TRUE, nettoyage tous les modules de la DLL d'extension.Sinon, nettoyage uniquement le module DLL en cours.

Notes

AfxTermExtensionModule supprime tout stockage local attaché au module et supprime toutes les entrées de cache de table des messages.Par exemple :

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
}

Si votre application charge et libère les DLL d'extension dynamiquement, veillez à appeler AfxTermExtensionModule.La plupart des DLL d'extension ne sont pas chargées dynamiquement (généralement, ils sont liés via leurs bibliothèques d'importation), l'appel à AfxTermExtensionModule n'est généralement pas nécessaire.

Les DLL d'extension MFC doivent appeler AfxInitExtensionModule dans leur DllMain.Si la DLL exportera des objets de CRuntimeClass ou possède ses propres ressources personnalisées, vous devez également créer un objet de CDynLinkLibrary dans DllMain.

Configuration requise

Header: afxdll_.h

Voir aussi

Référence

AfxInitExtensionModule

Concepts

Macro MFC et Globals