Inicializando DLLs não-MFC
Para inicializar DLLs não-MFC, o código-fonte DLL deve conter uma função chamada DllMain. O código a seguir apresenta um esqueleto básico mostrando que a definição de DllMain pode parecer com:
BOOL APIENTRY DllMain(HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
switch( ul_reason_for_call ) {
case DLL_PROCESS_ATTACH:
...
case DLL_THREAD_ATTACH:
...
case DLL_THREAD_DETACH:
...
case DLL_PROCESS_DETACH:
...
}
return TRUE;
}
![]() |
---|
O Windows SDK documentação para DllEntryPoint afirma que o nome real do que a função de ponto de entrada deve ser especificado no vinculador de linha de comando com a opção /ENTRY.Com o Visual C++, você não precisa usar a opção /ENTRY se o nome da sua função de ponto de entrada é DllMain. Na verdade, se você utilizar a opção /ENTRY e o nome do seu ponto de entrada funcionar algo diferente de DllMain, a biblioteca de time de execução C não irá obter inicializada corretamente. |
O que você deseja saber mais sobre?
Função de ponto de entrada de biblioteca de vínculo dinâmico (Windows SDK)
O comportamento de biblioteca de time de execução C e _DllMainCRTStartup