Inicializando DLLs regulares
Como as dlls normais têm um objeto de CWinApp , devem executar suas tarefas de inicialização e de término no mesmo local que um aplicativo MFC: em InitInstance e funções de membro de CWinAppda DLL - classe derivada de ExitInstance . Como o MFC fornece uma função de DllMain que é chamada por _DllMainCRTStartup para PROCESS_ATTACH e PROCESS_DETACH, você não deve escrever sua própria função de DllMain . MFC- forneceu chamadas de função InitInstance de DllMain quando o DLL é carregado e chama ExitInstance antes que o DLL seja descarregado.
Uma DLL normal pode controlar vários threads chamando TlsAlloc e TlsGetValue em seu InitInstance funções. Estas funções permitem que o DLL acompanhe dados de threads específicos.
O suporte nos seus soquetes normais da DLL que vincula dinamicamente ao MFC, se você estiver usando qualquer MFC OLE, base de dados de MFC (ou DAO), ou MFC, respectivamente, as dlls MFCOxxD.dll de extensão de depuração MFC, MFCDxxD.dll, e MFCNxxD.dll (onde xx é o número da versão) são vinculados em automaticamente. Você deve chamar uma das seguintes funções predefinidas de inicialização de cada um desses DLL que você está usando em CWinApp::InitInstancenormal do DLL.
Tipo de suporte de MFC |
Chame a função de inicialização |
---|---|
MFC OLE (MFCOxxD.dll) |
AfxOleInitModule |
Base de dados de MFCDxxD.dll) (MFC |
AfxDbInitModule |
Soquetes (MFC MFCNxxD.dll) |
AfxNetInitModule |
O que você deseja fazer?
Que você deseja saber mais?
O comportamento da biblioteca em tempo de execução do C e _DllMainCRTStartup
Usando o base de dados, o OLE, e as dlls de extensão de soquetes na DLL normais
Wrappers de armazenamento de thread local (observação 58 técnica MFC)