Inicializando a DLLs normais
Como DLLs normais têm um CWinApp o objeto, eles devem executar suas tarefas de inicialização e encerramento no mesmo local de um aplicativo MFC: no InitInstance e ExitInstance funções de membro a dll CWinApp-derivada da classe. Como o MFC oferece uma DllMain função que é chamada por _DllMainCRTStartup para PROCESS_ATTACH e PROCESS_DETACH, você não deve escrever seu próprio DllMain função. O MFC fornecido pelo DllMain chamadas de função InitInstance quando a DLL é carregada e chama ExitInstance antes que a DLL é descarregada.
Uma DLL regular pode manter o controle de vários segmentos chamando TlsAlloc e TlsGetValue no seu InitInstance função. Estas funções permitem a DLL acompanhar dados específicos de segmento.
Na sua DLL regular dinamicamente vinculado ao MFC, se você estiver usando qualquer MFC OLE, banco de dados MFC (ou DAO), ou suporte de soquetes de MFC, respectivamente, o MFC depurar extensão DLLs MFCOxxD.dll, MFCDxxD.dll, e MFCNxxD.dll (onde xx é o número de versão) são vinculados automaticamente. Você deve chamar uma das seguintes funções predefinidas de inicialização para cada uma dessas DLLs que você está usando na sua DLL regular CWinApp::InitInstance.
Tipo de suporte do MFC |
Função de inicialização para chamar |
---|---|
MFC OLE (MFCOxxD.dll) |
AfxOleInitModule |
Banco de dados MFC (MFCDxxD.dll) |
AfxDbInitModule |
Soquetes do MFC (MFCNxxD.dll) |
AfxNetInitModule |
O que você deseja fazer?
O que você deseja saber mais a respeito?
O comportamento da biblioteca de tempo de execução c e _DllMainCRTStartup
Usando o banco de dados OLE e DLLs de extensão de Sockets DLLs normais
Thread invólucros de armazenamento local (MFC 58 nota técnica)