AfxTermExtensionModule

void &AFXAPI AfxTermExtensionModule ( AFX_EXTENSION_MODULEamp; dello stato, BOOL palla = Falsi );

Parametri

dello stato

Un riferimento alla struttura AFX_EXTENSION_MODULE che contiene lo stato del modulo di estensione DLL.

palla   Se TRUE, pulizia di tutti i moduli di estensione DLL. In caso contrario, pulitura solo il modulo DLL corrente.

Osservazioni

Chiamare questa funzione per consentire MFC di pulitura DLL di estensione quando ogni processo disconnette dalla DLL (il che accade quando il processo si chiude o quando la DLL venga scaricata come risultato di una chiamata AfxFreeLibrary ). AfxTermExtensionModule sarā eliminare qualsiasi archiviazione locale collegato al modulo e rimuovere tutte le voci dalla cache mappa del messaggio. Ad esempio:

statico AFX_EXTE&NSION_MODULE extensionDLL;
extern "C" int APIENTRY DllMain (HINSTANCE hInstance, DWORD dwReason, LPVOID)
{
 nbsp; Se (dwReason = = DLL_PROCESS_ATTACH)
   {
      / / Inizializzazione unica estensione DLL se (!AfxInitExtensionModule (extensionDLL, hInstance))
         return 0;
      / / TODO: eseguire altre operazioni di inizializzazione qui
   }
   else if (dwReason = = DLL_PROCESS_DETACH)
   {
      / / DLL di estensione per processo di terminazione
      AfxTermExtensionModule(extensionDLL);
     / / TODO: eseguire altre operazioni di pulitura qui
   }
   restituire 1;   / / ok
}

Se l'applicazione viene caricato e libera le dll di estensione in modo dinamico, assicurarsi di chiamare AfxTermExtensionModule. Dal maggior estensione dll non vengono caricate in modo dinamico (di solito, essi sono collegati tramite proprie librerie di importazione), la chiamata a AfxTermExtensionModule non č solitamente necessaria.

Le dll di estensione MFC necessario chiamare AfxInitExtensionModule nella loro DllMain. Se la DLL esportazione di oggetti CRuntimeClass o ha le proprie risorse personalizzate, č inoltre necessario creare un oggetto CDynLinkLibrary in DllMain.

Vedere a&nchenbsp;AfxInitExtensionModule

Index