Шаг 98 - Функция DLLMain()

Функция входа в 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;  
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 8.03.2001