반응형

 

LoadLibrary는 사용하는 Application이 직접 DLL, EXE를 메모리에 올려 핸들을 얻어오는 함수이고,

GetModuleHandle현재 메모리에 올라와 있는 DLL, EXE의 Handle을 얻어오는 함수 이다.

 

그럼 이런걸 어디에 사용하면 좋은가???

 

LoadLibrary의 경우는 그냥 내가 필요한 DLL을 직접 호출 할때 사용하는 것이 좋고

 

GetMoudleHandle의 경우는 현재 올라가져 있는 DLL, EXE의 핸들을 얻어오는 과정

즉, 디버거 또는 현재 타겟이 되는 메모리 주소 번지를 확인 할 때 사용하는 것이 좋다.

 

단, GetModuleHandle로 얻어온 handle은 FreeLibrary를 하면 안된다.

현재 사용하고 있는 다른 곳(프로그램)에서 문제가 발생할 수 있다.

따라서 사용이 끝나면  CloseHandle로 마무리하는 것이 좋다.

 

또한, LoadLibrary의 경우는 reference count가 올라가게 된다.

Reference count의 경우는 메모리의 효율적인 관리에서 사용되는 데 count 수가 증가 될 경우 handle leak, memory leak이 발생할 가능성이 있다. (찾아봤는데 그거 말고는...ㅡㅡ;;)

 

 

 

 

반응형

+ Recent posts