Inicializando uma DLL
Em geral, o DLL tem o código de inicialização (como a alocação de memória) que deve ser executado quando o DLL for carregado. Ao usar o Visual C++, o local onde você adiciona o código para inicializar sua DLL depende do tipo de DLL que você está criando. Se você não precisar adicionar o código de inicialização ou de terminação, não há nada especial que você tenha de fazer ao criar sua DLL. Caso você precise inicializar a DLL, a tabela a seguir descreve onde adicionar o código.
Tipo DLL |
Onde adicionar a inicialização e o código de finalização |
---|---|
DLL normal |
Em InitInstance e ExitInstance do objeto CWinApp de DLL. |
DLL de Extensão |
Na função DllMain gerada pelo assistente de DLL do MFC. |
DLL não MFC |
Em uma função chamada DllMain fornecida por você. |
No Win32, todos os DLLs podem conter uma função opcional de ponto de entrada (geralmente chamada de DllMain) que é chamada para inicialização e encerramento. Isso oferece a você uma oportunidade para alocar ou liberar recursos adicionais como necessário. O Windows chama a função de ponto de entrada em quatro situações: processar anexação, processar desanexação, segmentar anexação e segmentar desanexação.
A biblioteca em tempo de execução do C oferece uma função de ponto de entrada chamada _DllMainCRTStartup e chama DllMain. Dependendo do tipo de DLL, você deve ter uma função chamada DllMain em seu código-fonte ou usar a DllMain fornecida na biblioteca MFC.
O que você deseja fazer?
Que você deseja saber mais?
O comportamento da biblioteca em tempo de execução do C e _DllMainCRTStartup
Função de ponto de entrada da biblioteca de link dinâmico (Windows SDK)