Поделиться через


Инициализация библиотек 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 не удастся инициализировать.

Дополнительные сведения

См. также

Основные понятия

Инициализация библиотеки DLL