zj3t

email: euntaejang@gmail.com

Latest Posts

WindowsAPI-핸들에 대한 이해

By 오후 2:32

핸들(handle)이란 구체적인 어떤 대상에 붙여진 번호이며 문법적으로는 32비트 또는 64비트의 정수값이다.

윈도우즈에서는 여러가지 종류의 핸들이 사용되고 있다. 만들어진 윈도우에는 윈도우 핸들(hWnd)을 붙여 번호로 관리하며 아직은 잘 모르겠지만 DC에 대해서도 핸들을 사용하고 논리적 펜, 브러시에도 핸들을 붙여 관리한다.

윈도우즈에서 핸들을 많이 사용하므로 우리는 핸들의 특성에 관해서 미리 숙지하는 것이 좋다. 핸들은 일반적으로 다음과 같은 특징이 있다.

1.핸들은 일단 정수가 대부분의 경우 32비트값이다. 핸들을 사용하는 목적은 오로지 구분을 위한 것이므로 핸들끼리 중복되지 않아야 하며 이런 목적으로는 정수형이 가장 적합하다. 정수형은 비교나 대입 연산이 가장 빠른 타입이므로 핸들로 쓰기에 적합하다.

2.핸들은 운영체제가 발급하며 사용자는 쓰기만 한다. 예를 들어 윈도우를 만들거나 파일을 열면 운영체제는 만들어진 윈도우나 열려진 파일에 핸들을 붙이고 그 값을 리턴한다. 사용자는 이 핸들을 잘 보관해 두었다가 해당 윈도우나 파일을 다시 참조할 때 사용한다. 사용자가 직접 핸들을 만드는 경우는 없다.

3.같은 종류의 핸들끼리는 절대로 중복된 값을 가지지 않는다. 만약 이렇게 된다면 대상을 구분하는 본래의 목적을 달성할 수 없을 것이다. 물론 다른 종류의 핸들끼리는 중복된 값을 가질 수도 있다.

4.핸들은 정수형이므로 값을 가지겠지만 그 실제값이 무엇인지는 몰라도 상관없다. 핸들은 크고작음의 성질을 가지는 숫자가 아니라 단순한 표식일 뿐이다. 핸들형 변수를 만들어 핸들을 대입받아 쓰고 난 후에는 버리면 된다. 마치 malloc한 포인터의 실제 위치가 어디인가 신경쓸 피사용하다가 free로 해제하면 그만인 것과 같다.



-윈도우즈 API 정복1

You Might Also Like

0 개의 댓글