본문 바로가기

Programming/Win32&MFC&COM

API, MFC에서 사용하는 변수형

반응형

API, MFC를 처음 공부하면 생소한 변수 타입을 자주 접하게 됩니다.

API, MFC에서 주로 사용되는 변수 타입은 다음과 같습니다.

BOOL기존의 bool(true, false의 값을 가짐)
BSTR32비트 문자 포인터
BYTE8비트 부호 없는(unsigned) 정수
COLORREF색 지정에 사용되는 32비트값(RGB매크로 사용으로 생성 가능)
DWORD32비트 부호 없는(unsigned) 정수, 세그먼트 어드레스 / 옵셋
LONG32비트 부호 있는 정수
LPARAM윈도우 프로시저 또는 콜백 함수의 인수로서 넘어가는 32비트 값
LPCSTR문자열 32비트 포인터(const 속성)
LPSTR문자열 32비트 포인터
LPCTSTR정수문자열로의 32비트 포인터(Unicode 지원)
LPTSTR문자열로의 32비트 포인터(Unicode 지원)
LPVOID형 지정 없는(void 형) 포인터
LRESULT윈도우 프로시저 또는 콜백 함수의 32비트 정수형 리턴 타입
UINT부호가 없는 32비트 정수형(unsigned int)
WNDPROC윈도우 프로시저 32비트 포인터
WORD16비트 부호없는 정수(16bit 환경에서는 UINT와 같은 크기)
WPARAM윈도우 프로시저 또는 콜백 함수의 인수로서 넘어가는 32비트 값
POSITIONMFC 컬렉션 클래스에서 사용
LPCRECTRECT 구조체의 포인터(const 속성)

그리고 HANDLE 이라는 타입은 Windows에서 많이 쓰이는 변수형중에 하나입니다.

실제로는 32bit의 정수형으로 표현됩니다.(32bit OS 기준)

HANDLE은 LPVOID를 재정의 한 것이기 때문에 64bit OS에서는 64bit의 값입니다.

정의 부분으로 가기를 해보면 typedef void *HANDLE;

라고 정의 되어 있습니다.

이 HANDLE이 다시 HWND 등으로 재정의됩니다.

API 프로그래밍에서 가장 많이 보게 될 변수형입니다.

DC도 핸들을 갖고 각 컨트롤들도 핸들을 갖습니다.

이것은 일종의 식별자라고 보면됩니다.

반응형