API- 유니코드
- 프로그래밍/WindowsAPI
- 2011. 5. 2. 12:29
유니코드는 16 bit 의 단일한 값으로 지구에 있는 모든 문자를 표현할 수 있는 문자 코드 체계이다.
유니코드를 지원할 수 있게 하기 위해 C 언어 타입으로 바로 쓰지 말고 아래와 같은 중간 타입을 사용하자.
TCHAR 는 c 의 기본타입 중 char 과 같지만, 유니코드로 컴파일 할 떄는 wchar_t 타입이 된다.
wchar_t 타입은 실제로는 unsigned short 로 정의되어 있으며 부호없는 16비트 정수형이다.
타입의 실제 정의문은 아래와 같이 조건부 컴파일문으로 작성되어 있다.
#def UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif
문자열을 다루는 함수들도 유니코드를 인식할 수 있는 아래와 같은 함수들을 쓰자. 기본타입의 l이 붙는다.
문자열 상수도 타입이 있으므로 겹 따옴표 안에 바로 문자열 상수를 쓰지 말고 TEXT 매크로로 둘러싸는 것이 좋다.
TCHAR *str="string";
TCHAR *str=TEXT("string");
TEXT 매크로는 유니코드 설정에 따라 문자열 상수에 타입을 변경한다.
유니코드로 컴파일할 때는 각 문자가 16비트의 유니코드 문자가 되며 그렇지 않을 때는 8 비트의 안시(ANSI) 문자가 된다.
출저: www.winapi.co.kr
이 글을 공유하기