AfxTermExtensionModule

void &AFXAPI AfxTermExtensionModule ( AFX_EXTENSION_MODULEamp; государство, BOOL шар = Ложь );

Параметры

государство

Ссылка на структуру AFX_EXTENSION_MODULE , содержащую состояние расширения DLL-модуля.

мяч   Если TRUE, очистки все модули DLL расширения. В противном случае — очистка только текущий модуль DLL.

Примечания

Эта функция вызывается для позволить MFC для очистки DLL расширения, когда каждый процесс отсоединяется от DLL (что случается при завершении процесса, или когда DLL выгружается из AfxFreeLibrary звонка). AfxTermExtensionModule удаляет любой локальной памяти к модулю и удалите все записи из кэша карты сообщений. Например:

статический AFX_EXTE&NSION_MODULE extensionDLL;
extern «C» int APIENTRY DllMain (HINSTANCE hInstance, DWORD dwReason, LPVOID)
{
 nbsp; Если (dwReason == процессе)
   {
      / / Однократная инициализация библиотеки DLL расширения КРП (!AfxInitExtensionModule (extensionDLL, hInstance))
         Возвращает 0;
      / / TODO: выполняют другие задачи инициализации
   }
   иначе если (dwReason == DLL_PROCESS_DETACH)
   {
      / / DLL расширения каждого процесса прекращения
      AfxTermExtensionModule(extensionDLL);
     / / TODO: выполняют другие задания очистки
   }
   возвращение 1;   / / ОК
}

Если приложение загружает и освобождает DLL расширения динамически, необходимо вызвать AfxTermExtensionModule. Поскольку большинство расширение библиотеки DLL не загружаются динамически (как правило, они связаны через свои библиотеки импорта), вызов AfxTermExtensionModule обычно не стоит.

Библиотеки DLL расширения MFC должен вызывать AfxInitExtensionModule в их функции DllMain. Если библиотека DLL будет экспортировать объекты CRuntimeClass или имеет свои собственные пользовательские ресурсы, необходимо также создать объект CDynLinkLibrary в модуле DllMain.

См. также AfxInitExtensionModule

Index