API- 유니코드

유니코드는 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
 

이 글을 공유하기

댓글

Designed by JB FACTORY