유니코드는 16비트의 단일한 값으로 지구상의 모든 문자를 표현할 수 있는 문자 코드 체계
C 타입 | 유니코드 타입
---------------------------------
char | TCHAR
char * | LPSTR
const char * | LPCTSRT
TCHAR는 C의 기본 타입 중 하나인 char과 일단 같지만 유니코드로 컴파일할 때는 wchar_t타입이 됨
wchar_t는 실제로 unsigned short로 정의되어 있으며 부호없는 16비트 정수형
TCHAR 타입의 실제 정의문은 다음과 같이 조건부 컴파일문으로 작성되어 있다.
#ifdef UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif
문자가 필요할시는 TCHAR로 문자열이 필요할 때는 LPSTR 또는 TCHAR *를 쓰는 것이 현명함
문자열처리 함수들도 C의 표준 함수를 쓰지 말고 가급적 유니코드를 인식하는 함수를 사용할 것
C 표준함수 | 유니코드 지원 함수
------------------------------------------
strlen | lstrlen
strcpy | lstrcpy
strcat | lstrcat
strcmp | lstrcmp
sprintf | wsprintf
문자열 상수도 타입이 있으므로 겹 따옴표안에 바로 문자열 상수를 쓰지 말고
TEXT 매크로로 둘러싸는 것이 좋다.
TEXT 매크로는 유니코드 설정에 따라 문자열 상수의 타입을 변경한다.
C 타입 | 유니코드 타입
---------------------------------
char | TCHAR
char * | LPSTR
const char * | LPCTSRT
TCHAR는 C의 기본 타입 중 하나인 char과 일단 같지만 유니코드로 컴파일할 때는 wchar_t타입이 됨
wchar_t는 실제로 unsigned short로 정의되어 있으며 부호없는 16비트 정수형
TCHAR 타입의 실제 정의문은 다음과 같이 조건부 컴파일문으로 작성되어 있다.
#ifdef UNICODE
typedef wchar_t TCHAR;
#else
typedef char TCHAR;
#endif
문자가 필요할시는 TCHAR로 문자열이 필요할 때는 LPSTR 또는 TCHAR *를 쓰는 것이 현명함
문자열처리 함수들도 C의 표준 함수를 쓰지 말고 가급적 유니코드를 인식하는 함수를 사용할 것
C 표준함수 | 유니코드 지원 함수
------------------------------------------
strlen | lstrlen
strcpy | lstrcpy
strcat | lstrcat
strcmp | lstrcmp
sprintf | wsprintf
문자열 상수도 타입이 있으므로 겹 따옴표안에 바로 문자열 상수를 쓰지 말고
TEXT 매크로로 둘러싸는 것이 좋다.
TEXT 매크로는 유니코드 설정에 따라 문자열 상수의 타입을 변경한다.