유니코드는 16비트의 단일한 값으로 지구상의 모든 문자를 표현할 수 있는 문자 코드 체계이다.
유니코드를 지원하려면 문자형이나 문자열에 대해 C언어의 타입을 바로 쓰지 말고 유니코드 설정에 다라 변경되는 중간 타입을 써야한다.

char -> TCHAR
char* -> LPSTR
const char* -> LPCTSTR

로 쓰면 된다.

TCHAR는 C의 기본 타입 중 하나인 char와 일단 같지만 유니코드로 컴파일 할 때는 wchar_t 타입이 된다. TCHAR 타입의 실제 정의문은 다음과 같이 조건부 컴파일문으로 작성되어 있다.

#ifdef UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif

 이렇게 작성되어 있기 때문에 char를 바로쓴 소스는 유니코드로 바꿀 때 일일이 소스를 뜯어 고친 후 다시 컴파일해야 하지만 TCHAR라는 중간 타입을 사용하면 프로젝트 설정에 따라 자동으로 변환해 주므로 가급적 char* 보다는 LPSTR 또는 TCHAR*를 쓰는 것이 현명하다.

유니코드용 문자열 함수는 기본 함수에 l을 붙여주면 된다.

strlen -> lstrlen
strcpy -> lstrcpy
strcat -> lstrcah
strcmp -> lstrcmp
sprintf -> wsprintf

'프로그래밍 > API' 카테고리의 다른 글

[API] 윈도우 생성..  (0) 2011.08.02
[API] 윈도우 클래스  (0) 2011.08.01
[API] 핸들에 대한 이해..  (0) 2011.07.31
[API] API 란 무엇인가.  (0) 2011.07.31
[API] API 관련하여..  (0) 2011.07.31
Posted by 바람처럼..
|