nieważne &AFXAPI AfxTermExtensionModule ( AFX_EXTENSION_MODULEamp; Państwo, BOOL kulki = Fałsz );
Parametry
państwo
Odniesienie do struktury AFX_EXTENSION_MODULE , zawierający stanu modułu DLL rozszerzenia.
kulka Jeśli TRUE, oczyszczanie wszystkie moduły DLL rozszerzenia. Inaczej, oczyszczanie tylko bieżącego modułu DLL.
Uwagi
Wywołanie tej funkcji, aby umożliwić MFC oczyszczanie Biblioteka DLL rozszerzenia podczas każdego procesu jest odłączana od biblioteki DLL (co się dzieje, kiedy proces lub jeśli biblioteka DLL jest zwolniona z wywołania AfxFreeLibrary ). AfxTermExtensionModule będzie usunąć wszelkie Magazyn lokalny, dołączone do modułu i usunąć wszystkie wpisy z pamięci podręcznej mapę wiadomości. Na przykład:
statyczne AFX_EXTE&NSION_MODULE extensionDLL;
extern "C" int APIENTRY DllMain (wystąpienie HINSTANCE wystąpienie hInstance, DWORD dwReason, elementem LPVOID)
{
nbsp; Jeżeli (dwReason == DLL_PROCESS_ATTACH)
{
/ / Jednorazowe Inicjowanie DLL rozszerzenia if (!AfxInitExtensionModule (extensionDLL, wystąpienie hInstance))
zwrócona wartość 0;
/ / TODO: wykonywanie innych zadań inicjowania, tutaj
}
else if (dwReason == komunikat DLL_PROCESS_DETACH)
{
/ / Biblioteka DLL rozszerzenia każdego procesu zakończenia
AfxTermExtensionModule(extensionDLL);
/ / TODO: wykonywać inne zadania oczyszczania, tutaj
}
zwrócona wartość 1; / / ok
}
Jeżeli aplikacji ładuje i zwalnia bibliotek DLL rozszerzeń dynamicznie, pamiętaj wywołać AfxTermExtensionModule. Ponieważ większość rozszerzenie dll nie są załadowane dynamicznie (zwykle one są połączone za pośrednictwem ich bibliotek przywozu), wywołanie AfxTermExtensionModule zazwyczaj nie jest konieczne.
MFC DLL rozszerzenia należy wywołać AfxInitExtensionModule w ich DllMain. Biblioteki DLL ma zasobów własnych niestandardowych lub zostanie wyeksportowany CRuntimeClass obiekty, można również potrzebne do utworzenia obiektu CDynLinkLibrary w funkcji DllMain.
Zobacz też AfxInitExtensionModule