[Windows API] Win32 API에서 제공하는 자료형(데이터 타입) 모음과 핸들(HANDLE)개발/Win32 API Programming2021. 10. 7. 18:39
Table of Contents
개요
Window API에서 제공하는 자료형을 정리하겠습니다.우리가 C, Python 등 평소에 자주 사용하는 프로그래밍 언어에서 쓰이는 int, double과 같은 자료형을 사용하면 변수가 어떤 의미를 갖고 있는지 파악하기 어렵습니다. 때문에 Window API는 자료형을 특정한 이름으로 재정의해서 변수의 자료형을 보고 어떤 특성이 있는지 한눈에 알아볼 수 있도록 제공하고 있습니다.
자료형
이름 | 의미 |
BOOL | Boolean (True 혹은 False) |
LPSTR | 문자열을 위한 32bit 포인터 |
UINT | 16bit unsigned int (Win32는 32bit) |
WORD | 16bit unsigned int |
DWORD | 32bit unsigned int / 세그먼트의 주소 혹은 offset |
LONG | 32bit signed int |
WPARAM | 16bit(Win32는 32bit) 프로시저에 전달되는 매개변수 혹은 콜백함수 |
LPARAM | 32bit 프로시저에 전달되는 매개변수 혹은 콜백함수 |
HANDLE | unsinged int / 오브젝트의 핸들 |
HWND | unsigned int / 윈도우의 핸들 |
HINSTANCE | unsigned int / 인스턴스의 핸들 |
핸들(Handle)
운영체제는 리소스를 안전하게 관리하기 위해서 직접적으로 주소를 사용하는 포인터 대신 핸들이라는 개념을 사용합니다. 핸들이란 운영체제 내부에 있는 어떤 리소스의 주소를 정수(32bit 혹은 64bit)로 치환한 값입니다.
따라서, HANDLE이란 자료형은 오브젝트의 주소를 나타내는 자료형이라고 생각할 수 있습니다. 조금 쉽게 말하면 구체적인 어떤 대상에 붙여진 번호입니다.
핸들의 특징은 다음과 같습니다.
- 핸들은 구분을 위한 것이므로 중복을 허용하지 않는다.
- 운영체제가 발급하며 사용자는 사용만 한다. (핸들 값을 생성하지 않는다.)
- H로 시작하는 접두어를 가진다.
운영체제는 핸들 테이블(Handel Table)에 리소스의 주소와 핸들의 값을 저장해서 관리하고 있습니다. 핸들을 의미하는 자료형들은 접두사로 H를 붙여서 사용합니다. 예를 들어, 마우스 커서의 핸들 값은 HCURSOR라는 자료형을 사용하고, 아이콘의 핸들 값은 HICON이라는 자료형을 사용합니다. 위 표를 보면 윈도우의 핸들은 HWND로 사용하고 있습니다. 이와 관련한 구체적인 변수 명명법(변수 이름 짓는 법)은 다음 포스팅에서 다루도록 하겠습니다.
정리
Window API에서 제공하는 자료형을 정리하고 핸들에 대해서 알아보았습니다.
'개발 > Win32 API Programming' 카테고리의 다른 글
[Windows API] Device Context란?, Win32 API를 활용해 문자열 출력하기 (0) | 2021.12.31 |
---|---|
[Windows API] Win32 API의 기본구조, 윈도우 프로시저 (0) | 2021.12.26 |
[Windows API] Win32 API의 기본구조, WinMain-(2) (0) | 2021.11.05 |
[Windows API] 윈도우 프로젝트 생성과 WIN32 API의 기본 구조-(1) (0) | 2021.11.03 |
[Windows API] API, MFC란, 윈도우 프로그래밍 동작 방식 (1) | 2021.09.28 |