AfxInitExtensionModule
Chamar essa função em DllMain de uma DLL de extensão para inicializar a DLL.
BOOL AFXAPI AfxInitExtensionModule(
AFX_EXTENSION_MODULE& state,
HMODULE hModule
);
Parâmetros
state
Uma referência à estrutura de Estrutura AFX_EXTENSION_MODULE que conterá o estado do módulo DLL de extensão depois da inicialização. O estado inclui uma cópia dos objetos da classe de tempo de execução que foram inicializados pela DLL de extensão como parte da compilação normal de objeto estático executada antes que DllMain está conectado.hModule
Um identificador de módulo DLL da extensão.
Valor de retorno
Verdadeiro se a DLL de extensão é inicializado com êxito; caso contrário, Falso.
Comentários
Por exemplo:
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;
AfxInitExtensionModule faz uma cópia de HMODULE DLL e captura as classes em tempo de compilação da DLL (estruturas deCRuntimeClass ) bem como suas fábricas de objeto (objetos deCOleObjectFactory ) para uso posterior quando o objeto de CDynLinkLibrary é criado.
Dlls de extensão MFC precisam fazer duas coisas na função de DllMain :
Chame AfxInitExtensionModule e verifique o valor de retorno.
Crie um objeto de CDynLinkLibrary se a DLL estiver exportando objetos de Estrutura CRuntimeClass ou tem seus próprios recursos personalizados.
Você pode chamar AfxTermExtensionModule para limpar a DLL de extensão quando cada processo desanexar da DLL de extensão (que acontece quando o processo é encerrado, ou quando a DLL é descarregado no resultado de uma chamada de AfxFreeLibrary ).
Requisitos
Header: afxdll_.h