GetModuleHandle 과 LoadLibrary
GetModuleHandle 과 LoadLibrary [출처] GetModuleHandle 과 LoadLibrary|작성자 분발하자
GetModuleHandle은 그리 접할일이 많지 않은 함수이다. 우선 모듈이라는 말은
간단히 함수들의 집합이다. 특정일을 처리한다는 객체의 개념으로 해석할 수도 있다. 다른 공학에서는 모듈이 있지만 역시 기능을 모아 놓았다는 비슷한 뜻이다. 함수들의 집합이라고 해도 아직 좀 막연한데 윈도우 내에서는 구체적인 예로 DLL이나 EXE 파일이 있다
MSDN 에 의하면 GetModuleHandlle은 모듈의엔트리 포인트를 넘겨주는 함수이다.
엔트리 포인트는 Base Adress이다 C 프로그램의 엔트리 포인트는 main 이요, 윈도우 프로그래밍의 엔트리 포인트는 WinMain 이 아닌가. 물론 관점에 따라 스타트업 코드를 엔트리 포인트라고 할수도 있다.
HMODULE GetModuleHandle ( LPCSTSTR lpModuleName );
lpModuleName 에 dll 이나 exe 파일 이름을 넘겨주면 모듈에 대한 핸들 을 리턴하는 것이 아니라 실제 리턴값은 베이스 주소 값을 넘겨준다. 결국 GetModuleHandle 은 dll 과 exe 의 베이스 주소를 리턴하는 함수이다.
LoadLibrary 역시 같은 기능을 하지만 레퍼런스 카운팅 ( referencing counting ) 을 하느냐 안하냐의 차이점이 있다.
LoadLibrary 의 경우 레퍼런스 카운트를 올리지만 GetModuleHandle 은 올리지 않는다 그러므로
단순한 값만 참조할때는 GetModuleHandle 을 실제 지속적으로 사용하기 위해서는 LoadLibrary 를 사용한다.
출처 : http://blog.naver.com/pwk0810?Redirect=Log&logNo=40131525623
[출처] GetModuleHandle 과 LoadLibrary|작성자 분발하자