Inicializando uma DLL
Normalmente, a sua DLL tem código de inicialização (como a alocação de memória) que deve ser executado quando sua DLL é carregada. Ao usar o Visual C++, onde você adiciona 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 a rescisão, não há nada de especial, que você deve fazer quando estiver criando sua DLL. Se você precisar inicializar sua DLL, a tabela a seguir descreve onde adicionar seu código.
Tipo DLL |
Onde adicionar código de inicialização e encerramento |
---|---|
DLL regular |
A dll CWinApp do objeto InitInstance e ExitInstance. |
DLL de extensão |
No DllMain função gerado pelo assistente DLL da MFC. |
DLL de MFC |
Em uma função chamada DllMain que você fornecer. |
No Win32, todas as DLLs podem conter uma função de ponto de entrada opcional (normalmente chamado de DllMain) que é chamado de inicialização e encerramento. Isso lhe dá a oportunidade de alocar ou liberar recursos adicionais, conforme necessário. Windows chama a função de ponto de entrada em quatro situações: processo de anexar, desanexar do processo, thread anexar e desanexar do thread.
A biblioteca de tempo de execução c fornece uma função de ponto de entrada chamada _DllMainCRTStartup, e ele chama DllMain. Dependendo do tipo de DLL, você deve ter uma função chamada DllMain na fonte de código, ou você deve usar o DllMain fornecido na biblioteca MFC.
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
Função de ponto de entrada da biblioteca de vínculo dinâmico (SDK do Windows)