Функция входа в DLL:
BOOL WINAPI DllMain ( HINSTANCE hinstDLL, // указатель на модуль DLL DWORD fdwReason, // флаг причины вызова функции LPVOID lpvReserved // зарезервировано );
Эта функция вызывается в нескольких случаях, причина вызова описана в fdwReason:
DLL_PROCESS_ATTACH новый процесс имеет доступ к DLL DLL_THREAD_ATTACH новый поток получает доступ к DLL DLL_THREAD_DETACH последний поток отсоединяется от DLL DLL_PROCESS_DETACH один из потоков процесса отсоединяется от DLL
Если Вы хотите сами обрабатывать эти вызовы, то код должен быть примерно таким:
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved) { switch( fdwReason ){ case DLL_PROCESS_ATTACH: break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; case DLL_PROCESS_DETACH: break; } return TRUE; }