AfxInitExtensionModule
Chamar essa função em uma DLL de extensão DllMain para inicializar a DLL.
BOOL AFXAPI AfxInitExtensionModule(
AFX_EXTENSION_MODULE& state,
HMODULE hModule
);
Parâmetros
state
Uma referência para o Estrutura AFX_EXTENSION_MODULE estrutura que contém o estado do módulo DLL de extensão após a inicialização.O estado inclui uma cópia dos objetos de classe em tempo de execução foi inicializada pela extensão DLL como parte da construção de objeto estático normal executada antes de DllMain é inserido.hModule
Identificador do módulo DLL de extensão.
Valor de retorno
TRUE se a extensão DLL é inicializada com êxito; Caso contrário, FALSE.
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;
AfxInitExtensionModulefaz uma cópia da dll HMODULE e classes de tempo de execução da DLL de captura (CRuntimeClass estruturas), bem como seus fábricas de objeto (COleObjectFactory objetos) para usar posteriormente, quando o CDynLinkLibrary objeto é criado.
Extensão do MFC DLLs precise fazer duas coisas em seus DllMain função:
Chamar AfxInitExtensionModule e verifique o valor de retorno.
Criar um CDynLinkLibrary de objeto se a DLL estará exportando Estrutura CRuntimeClass objetos ou tem seus próprios recursos personalizados.
Você pode chamar AfxTermExtensionModule para limpar a extensão DLL quando cada processo desanexa da DLL de extensão (que acontece quando o processo é encerrado ou quando a DLL é descarregada como resultado de uma AfxFreeLibrary de chamada).
Requisitos
Cabeçalho: afxdll_.h