DLL 엔트리 포인트 함수 DllMain
3648 단어 운영 체제
BOOL WINAPI DllMain(
HINSTANCE hinstDLL, // handle to DLL module
DWORD fdwReason, // reason for calling function
LPVOID lpReserved ) // reserved
{
// Perform actions based on the reason for calling.
switch( fdwReason )
{
case DLL_PROCESS_ATTACH:
// Initialize once for each new process.
// Return FALSE to fail DLL load.
break;
case DLL_THREAD_ATTACH:
// Do thread-specific initialization.
break;
case DLL_THREAD_DETACH:
// Do thread-specific cleanup.
break;
case DLL_PROCESS_DETACH:
// Perform any necessary cleanup.
break;
}
return TRUE; // Successful DLL_PROCESS_ATTACH.
}
MSDN, DllMain 。
:
1、 HINSTANCE hinstDLL
DLL , DLL , 。
2、 DWORD fdwReason
DllMain 。 , case 。 , 。
3、 LPVOID lpReserved
。
fdwReason , , DllMain。
1、DLL_PROCESS_ATTACH
DLL , DllMain, fdwReason DLL_PROCESS_ATTACH。
, , 。 , DLL, DLL , DLL_PROCESS_ATTACH DllMain。
DLL_PROCESS_ATTACH , DLL 。
DllMain , DLL_PROCESS_ATTACH 。 , 。
, DllMain FALSE, 。 , LoadLibrary NULL。
2、DLL_PROCESS_DETACH
DLL , DllMain DLL_PROCESS_DETACH。 。
FreeLibrary , 0 , DLL_PROCESS_DETACH DllMain。 0, DLL 。
3、DLL_THREAD_ATTACH
, <strong> </strong> DLL , DLL_THREAD_ATTACH DLL DllMain。
DLL DLL_THREAD_ATTACH , 。
, DLL_THREAD_ATTACH DllMain, , DLL_PROCESS_ATTACH DllMain 。
4、DLL_THREAD_DETACH
, ExitThread, , DLL_THREAD_DETACH DLL DllMain.
DLL DllMain , 。
DllMain
:
,A B。 , SomeDll.dll DLL。 CreateThread ,C D。
A CreateThread C , DLL_THREAD_ATTACH SomeDll.dll DllMain, C , B CreateThread D。
, DLL_THREAD_ATTACH SomeDll.dll DllMain, D 。
, DllMain , D , C DllMain 。
C DllMain , C 。 , D, D DllMain 。 , D 。
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
독서 노트문제1: 한 파일에 10000000개의 기록이 포함되어 있으며, 각 기록의 내용은 7자리의 정수이다.기록은 중복되지 않는다.파일 내용을 읽는 프로그램이 필요하고, 이 기록을 정렬한 후 파일을 출력해야 하며, 메모리는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.