Win32 API 에서의 문자형 데이터

|

Win32 API 에서의 문자형 데이터

char == TCHAR
char * == LPTSTR
const char * == LPCTSTR


윈도우 프로그래밍에서는 도스에서는 볼 수 없었던 LPARAM 등의 생소한 데이터 형이 굉장히 많이 등장합니다.
특히 LPSTR, LPCSTR 등의 문자열과 연계된 포인터 형식의 데이터 형이 많이 있으므로
여기서 개념을 확실히 잡고 넘어가야
Win32API/MFC 을 활용한 윈도우 프로그래밍을 할 때에 헷갈리는 경우가 없을 것입니다.

모든 데이터 형을 외울 필요는 없습니다.
참고할 책이 있고 인터넷이 있으므로 머릿 속에 모든 것을 담아둘 필요가 없으니까요.

윈도우 프로그래밍에서의 데이터 형

TRUE : 1
FALSE : 0

BOOL : 논리형, TRUE 또는 FALSE 만 가질 수 있다.
BYTE : 8 bit unsigned 정수형
DWORD : 32 bit unsigned 정수형
LONG : 32 bit signed 정수형
LONGLONG : 64 bit signed
FLOAT : float
LPARAM : 32 bit 메시지 파라미터
LPSTR : 널 문자로 끝나는 윈도우 문자열의 포인터
LPCSTR : 널 문자로 끝나는 윈도우 문자열 상수의 포인터 (const LPSTR)
LPTSTR : 널 문자로 끝나는 유니코드 또는 윈도우 문자열의 포인터
LPCTSTR : 널 문자로 끝나는 유니코드 또는 윈도우 문자열 상수의 포인터
TCHAR : 유니코드 또는 윈도우 문자
UINT : 32 bit unsigned 정수형
WORD : 16 bit unsigned 정수형
WPARAM : 16 bit 메시지 파라미터
COLORREF : R, G, B 의 조합으로 표현되는 컬러를 표현하는 32비트 정수
POSITION : 리스트에 저장된 항목을 가리키는 포인터
LPSTR, LPCSTR, LPTSTR, LPCTSTR 등 유사한 데이터 형이 많은데
이런게 있다 정도만 참고하도록 합시다.
외워서는 의미가 없고 실제로 어디서 어떻게 쓰이는 지 알아야 머릿속에 남으니까요.
또 실제로 쓰는 것은 한정되어 있습니다.

요즘은 국제화 시대라고 합니다.
인터넷에서 클릭 몇 번만 하면
한국에서 미국으로 또 일본으로 중국으로 사우디 아라비아로 건너가는 것 쯤은 식은 죽 먹기입니다.

그래서 컴퓨터로 표현하기 위한 문자열도 변화가 필요했습니다.
이제는 한 컴퓨터에서 영어를 포함한 여러개의 국어를 표현할 필요가 있었지요.

영어는 1바이트 문자입니다.
한글은 2바이트 문자입니다.

전세계 어디에서든 공통적으로 사용될 수 있는 텍스트 인코딩 방법이 필요했습니다.
그래서 나온 것이 유니코드(UNICODE) 입니다.

유니코드는 각각의 문자를 16비트(2바이트)로 표현하기 때문에
2 의 16 제곱을 하면 65,536 가지의 글자를 표현할 수 있습니다.

65,536 개의 공간속에 세계 각국의 언어코드를 할당하는 것입니다.
알파벳을 위해 2,499개
중국, 일본, 한국에서 사용하는 한자를 위해 20,902개
한글을 위해 11,172개

도스 프로그래밍에서는 그냥 영어와 메모리에 상주된 자국어를 사용하여 화면을 출력했지만
윈도우 프로그래밍을 할 때에는 유니코드를 사용하여 텍스트를 인코딩 해야하는 경우가 생깁니다.

LPSTR, LPCSTR, LPTSTR, LPCTSTR, TCHAR 은 이러한 생각에서 만들어진 데이터 형이라 보시면 되겠습니다.



출처> 윈도우 프로그래밍에서의 데이터 형


'메모 > C/C++' 카테고리의 다른 글

우선순위 큐 STL 사용법  (0) 2012.03.22
MFC 참조  (0) 2012.03.20
win32 api  (0) 2012.03.19
hWnd와 CWnd의 차이  (0) 2012.03.18
Win32 디폴트 페이지 분석  (0) 2012.03.18
And
prev | 1 | ··· | 6 | 7 | 8 | 9 | next