Инициализация библиотек DLL, не использующих MFC
Если библиотека DLL не использует MFC, то она должна содержать функцию с именем DllMain, обеспечивающую возможность инициализации. Следующий код демонстрирует возможную структуру определения функции DllMain:
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;
}
Примечание
В документации Windows SDK о функции DllEntryPoint сказано, что реальное имя функции точки входа должно быть указано в командной строке компоновщика с помощью параметра /ENTRY.В Visual C++ не требуется использовать параметр /ENTRY, если функция точки входа носит имя DllMain.Фактически, если используется имя функции точки входа, отличное от DllMain, то библиотеку времени выполнения языка C не удастся инициализировать.
Дополнительные сведения
Функция точки входа библиотеки динамической компоновки (Windows SDK)
Поведение библиотеки времени выполнения языка C и функция _DllMainCRTStartup