반응형

[MFC] HWND와 HINSTANCE

반응형


HWND는 윈도우 자체에 대한 정보를 가지는 것이고, HINSTANCE는 현재 실행 중인 인스턴스(여기서 인스턴스는 윈도우에서 실행 중인 창들로 보시면 됩니다.)에 관한 정보를 가지고 있습니다.


인스턴스는 운영체제 전체에서 유일한 번호를 가지므로 HWND를 가지고 HINSTANCE에 대한 정보를 알 수 없지만 HINSTANCE를 가지고 있으면 HWND에 관한 내용을 알 수 있습니다. 


추가적인 설명을 덧붙이자면, HWND는 CWnd로 개체를 만든 후 CWnd 클래스의 Create함수를 호출하여 Window창을 만드는 데 이 때의 창을 식별하는 창 핸들입니다.


 HINSTANCE는 프로그램 코드를 담고 있는 모듈에 대한 인스턴스 핸들입니다. 즉, HINSTANCE를 통해 해당 모듈을 관리하게 되는 거죠. (윈도우에서는 메모리에 올려진 모듈을 윈도우에서 관리하기 위해 일종의 고유 식별 번호를 부여하는데, 이것이 인스턴스 핸들, HINSTANCE입니다.)


또한 한 프로세스가 여러 개의 모듈을 로딩하여 프로그램을 실행한다면 하나의 프로그램이 여러 개의 인스턴스 핸들을 할당받아 쓰고 있을 수 있습니다. 대표적인 예가 IE인데, DLL파일을 한 개 쓸 때마다 이 DLL모듈에 대한 인스턴스 핸들이 하나씩 생긴다고 보시면 됩니다. 


참고자료 : http://terapi.tistory.com/entry/HWND%EC%99%80-HINSTANCE%EC%9D%98-%EC%B0%A8%EC%9D%B4-API

반응형

이 글을 공유하기

댓글

Designed by JB FACTORY