디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

WINAPI에서 HWND랑 HINSTANCE차이가 먼가영

금고래갤로그로 이동합니다. 2011.01.26 21:27:04
조회 213 추천 0 댓글 11

HINSTANCE는 프로그램의 핸들이 아니라, 프로그램 코드를 담고 있는 모듈에 대한 핸들이다. 즉, 프로그램이 수행되려면 프로그램 코드를 담고 있는 파일을 메모리의 특정 영역에 올려서 명령을 하나식 읽어가면서 수행할 수 있도록 준비해 놓아야 한다.

 

이렇게 메모리에 올려진 프로그램 코드 덩어리를 윈도우에서 관리하기 위해서 일종의 고유 식별 번호를 부여하는데, 이것이 인스턴스 핸들, HINSTANCE이다. 기본적으로 프로세스를 실행하는 실행파일의 코드를 메모리에 올려놓은 모듈이 하나 있어야 하므로, 실행 파일의 모듈에 대한 인스턴스 핸들을 OS가 어플리케이션 WindMain의 인자로 넘겨주는 것이다.

 

한 프로세스가 여러개의 모듈을 로딩하여 프로그램을 실행하고 있다면 하나의 프로그램이 여러개의 인스턴스 핸들을 할당받아 쓰고 있을 수 있다.(물론 한 개의 모듈을 여러 프로세스가 공유하고 있을 수도 있다.) 대표적인 예가 바로 IE인데, 간단하게 DLL파일 한 개를 쓸 때마다 이 DLL 모듈에 대한 인스턴스 핸들이 한 개씩 생긴다고 보면 된다. 물론 DLL이 한번 로딩되면 다른 프로그램 사이에서 공유된다.

 

한 개의 프로그램에서 HINSTANCE가 한 개만 있는 것이 아니며, 또한 하나의 인스턴스 핸들이 한 개의 프로그램에만 종속되는 것이 아니므로 어떤 프로그램의 출력 대상을 지정하는 데에는 부적적하다는 점을 알 수 있다. 물론, 인스턴스 핸들은 애초부터 화면 출력을 고려햐여 만들어진 식별자는 아니며 단지 프로그램 코드 덩어리를 관리하기 위해 만들어진 리소스이다.

 

윈도우라는 OS에서 화면 출력을 위해 관리하는 리소스가 바로 HWND이다. MㄹSN 메신저 등을 보면 알겠지만 하나의 프로그램이 하나의 창을 사용한다는 보장은 없다. 오히려 99.99%의 프로그램은 한 개 이상의 윈도우로 구성되어 있다. 한 프로그램의 윈도우가 겉보기에는 단일한 대상 영역으로 보일지라도 실제로는 구성요소별로 분리하여 별개의 윈도우로 만들어 각 윈도우는 자기 자신이 맡은 부분에 대한 화면 출력과 사용자 입력만을 담당한다. 자연히 하나의 프로그램에서 사용하는 HWND 타입의 개체 역시 1개 이상이 될 수 밖에 없으며, 이러한 상황에서 특정 위치에 특정한 동작을 수행하기 위해서는 HWND로 대상 영역을 구분할 수 밖에 없다.


네이버 블로그
외계어라능




책에는

HINSTANCE란 실행중인 프로그램을 칭하는 용어이고, 프로그램 자체를 일컫는 정수값이다.
HWND는 윈도우를 대표하는 번호이며 이 윈도우를 참조하는 모든함수의 인수로 사용된다.

실행중인 프로그램이 윈도우 아님?

윈도우번호 = 실행중인 프로그램 정수값

차이점을 모르겠다능

추천 비추천

0

고정닉 0

0

댓글 영역

전체 댓글 0
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 이번주 설문은 탈모 걱정 없어 보이는 머리숱 금수저 스타는? 운영자 25/07/14 - -
AD 휴대폰 액세서리 SALE 운영자 25/07/15 - -
351001 학점을 좀 포기할까 [1] 야간편돌이(175.116) 13.03.21 79 0
351000 연산자 오버로딩은 스레기 아니냐 [5] 그거슨(125.177) 13.03.21 123 0
350999 시발개색기들아 [3] 야간편돌이(175.116) 13.03.21 74 0
350997 야 근데 클래스 캡슐화가 꼭필요함? [13] 럼블좆도안귀여움갤로그로 이동합니다. 13.03.21 167 0
350995 님들 프로그래밍 관련 영어 서적들 영어 수준 어떰?? [8] 야간편돌이(175.116) 13.03.21 123 0
350993 아 피곤하다 에어로홍갤로그로 이동합니다. 13.03.21 23 0
350992 웹페이지는 어떻게 설계함? [3] 부스타(203.226) 13.03.21 92 0
350991 북한애들 해킹실력 존나 쩐다 횽들 ㅎㄷㄷ [1] ㅇㅇ(1.240) 13.03.21 166 0
350988 vmware 에서 mac os x 설치 하려는데 인텔HD2000이면안돼? [1] a(1.252) 13.03.21 45 0
350986 요즘 북조선동무들은 미국 양놈들말도 잘쓰나봐요? 이신알갤로그로 이동합니다. 13.03.21 48 0
350985 굿모닝 백이(223.62) 13.03.21 24 0
350984 오늘도......jpg d(1.214) 13.03.21 114 0
350981 자바스크립트 완벽 가이드를 구입했습니다. [7] 프로그래밍(118.218) 13.03.21 184 0
350980 이런 갤러리가 있었네요.. 반갑습니다. [5] 꼬마야갤로그로 이동합니다. 13.03.21 90 0
350979 혹시 항만수치해석 하는 형들 여기에 있어? ddd(211.176) 13.03.21 39 0
350978 자바같은 스레기 언어 배우니까 [3] 그거슨(125.177) 13.03.21 163 0
350977 irc에 프로그래밍 대화하는 채널이 있음?? [4] 야간편돌이(175.196) 13.03.21 90 0
350976 인공지능 로봇 갖고싶다. [1] (211.196) 13.03.21 41 0
350975 옛날 컴퓨터랑 지금 컴퓨터랑 비교하면 성능이 어느정도 차이남? [8] (211.196) 13.03.21 122 0
350974 디지털 회로랑 아날로그 회로는 어디어디에 쓰였음? (211.196) 13.03.21 135 0
350973 아예 프로그래밍이란건 한번도 안해본 종자인데 [7] 소덕냥꾼갤로그로 이동합니다. 13.03.21 187 0
350971 LINQ 부왘! [1] dot(113.30) 13.03.21 88 0
350970 형님들 자바 공부하는데요 조언부탁드려요 [4] Packet갤로그로 이동합니다. 13.03.21 134 0
350968 두개 합쳐서 정렬하는거 가지고 그렇게 싸우는거였냐? ㅋㅋㅋ [2] dd(1.247) 13.03.21 69 0
350967 시발 내가 텔파이를 공부하면 할수록 내가 이걸 왜 하고 있나 생각이 든다 [5] 멍청닭(182.211) 13.03.21 114 0
350966 프갤은 이런것도 아냐?? [7] 프갤(182.219) 13.03.21 124 0
350965 <img>태그 크기 기본값지정 못함? [5] go2갤로그로 이동합니다. 13.03.21 68 0
350964 황당 델파이 ㅡ.ㅡ [5] 멍청닭(182.211) 13.03.21 200 0
350963 서버용 운영체제랑 일반 운영체제랑 다른점...? [20] (168.126) 13.03.21 432 0
350962 내일 출근해야 되는데 잠이 안온다.. [1] 개새(116.33) 13.03.21 44 0
350961 윈도우서버도 [1] dd(210.94) 13.03.21 42 0
350960 슈도코드 써보려고했는데 [4] 야간편돌이(175.196) 13.03.21 110 0
350959 아오 시발 델파이 도대체 왜 이러냐?? [2] 멍청닭(182.211) 13.03.21 90 0
350958 님들 이게 봐주셈 본문 [7] ㅇㅇ(119.56) 13.03.21 107 0
350957 혹시 DNA 컴퓨터 잘 아시는 분 [4] (211.196) 13.03.21 83 0
350956 재귀하상파서에서 not구현하는법! ㅠㅠ 개새들어와봐 ㅠㅠ 이거 맞는것같은 [7] 과제빡쳐(61.78) 13.03.21 128 0
350954 슈도코드는 introduction to algorithms 있는 형식으로 개새(116.33) 13.03.21 59 0
350953 거 유사코드.. [2] 인간(110.35) 13.03.21 37 0
350951 플밍 재밋네염 블럭갤로그로 이동합니다. 13.03.21 44 0
350950 고민있당 ㅇㄹㄱ(175.204) 13.03.21 28 0
350949 어제 꿈에서 여자사람을 봤는데 [2] 인간(110.35) 13.03.21 79 0
350947 글 삭튀한 재귀하강파서 새끼는 봐라 [15] 12(116.33) 13.03.21 120 0
350946 !20<2*12 의 답은? [2] 과제빡쳐(61.78) 13.03.21 58 0
350945 프갤은 메뉴에도 없는데 다들 어떻게 들어옴? [3] ㅇㅇ(180.231) 13.03.21 75 0
350944 배열정렬 차라리 이런식으로 하시면 의사코드 짜기도 쉬우실꺼; [9] 야간편돌이(175.196) 13.03.21 101 0
350943 시발.. 다시 짯다 틀린부분 일침좀.. [10] ㅇㅇ(119.56) 13.03.21 103 0
350939 질문받아요 [8] Cython갤로그로 이동합니다. 13.03.20 83 0
350938 안녕하세요 [2] Cython갤로그로 이동합니다. 13.03.20 53 0
350937 자자 에어로홍갤로그로 이동합니다. 13.03.20 60 0
350936 갑자기 국산 백신에서 Avast로 갈아탄다는 놈들이 늘었는데 조언(119.71) 13.03.20 142 0
뉴스 '남주의 첫날밤을 가져버렸다' 서현, 드디어 밝혀진 빙의의 진실! 단역의 일탈이 운명을 뒤흔들었다! 디시트렌드 07.17
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2