AfxTermExtensionModule

privatevoid &AFXAPI AfxTermExtensionModule ( AFX_EXTENSION_MODULEamp; Zustand, BOOL Kugel = Falsch );

Parameter

zustand

Ein Verweis auf die AFX_EXTENSION_MODULE Struktur, die den Zustand der Erweiterungs-DLL-Modul enthält.

Kugel&Nbsp;  Wenn TRUE, Bereinigung aller DLL Erweiterungsmodule. Ansonsten, Bereinigung nur die aktuellen DLL-Modul.

Bemerkungen

Rufen Sie diese Funktion um MFC zur Reinigung die Erweiterungs-DLL ermöglichen jedem Prozess aus der DLL getrennt wird (das geschieht, wenn der Prozess beendet wird oder wenn die DLL aufgrund eines AfxFreeLibrary -Aufrufs entladen wird). AfxTermExtensionModule löscht alle lokalen Speicher an das Modul angeschlossen und entfernen Sie alle Einträge aus dem Cache Nachricht anzeigen. Zum Beispiel:

statische AFX_EXTE&NSION_MODULE ExtensionDLL;
Extern "C" Int APIENTRY DllMain (HINSTANCE hInstance, DWORD DwReason, LPVOID kombiniert werden)
{
 Nbsp; Wenn (DwReason == DLL_PROCESS_ATTACH)
   {
      / / Extension DLL einmalige Initialisierung If (!AfxInitExtensionModule ExtensionDLL (hInstance))
         return 0;
      / / TODO: hier Weitere Initialisierungsaufgaben ausführen
   }
   elseif (DwReason == DLL_PROCESS_DETACH)
   {
      / / Erweiterungs-DLL pro Prozess Beendigung
      AfxTermExtensionModule(extensionDLL);
     / / TODO: hier andere Cleanuptasks ausführen
   }
   1 zurück;   / / ok
}

Wenn die Anwendung lädt und Erweiterungs-DLLs dynamisch freigibt, müssen Sie AfxTermExtensionModuleaufrufen. Seit die meisten Erweiterungs-DLLs werden nicht dynamisch geladen (in der Regel, wenn sie verbunden über ihre Importbibliotheken), der Aufruf von AfxTermExtensionModule ist normalerweise nicht erforderlich.

MFC-Erweiterungs-DLLs müssen AfxInitExtensionModule in ihrer DllMainaufgerufen. Wenn die DLL eine eigene benutzerdefinierten Ressourcen hat oder wird sein CRuntimeClass -Objekte exportieren, müssen Sie auch ein CDynLinkLibrary -Objekt in DllMain erstellen.

Siehe auch&Nbsp;AfxInitExtensionModule

Index