Mutibyte에서는 char 를 사용하고, Unicode에서는 wchar_t 를 사용한다.
가장 많이 쓰는 문자열 CString 의 경우는 2가지 경우에 대해서 typedef 에서 각각 달리 정의되어서 사용이 가능하다.
자세한 설명은 http://eslife.tistory.com/253 글을 참조하면 나와있고, 여기서는 사용방법만 간략히 기술하겠다.
char 형 : _TCHAR 사용
String 형 : CString 사용
ANSI
|
UNICODE
|
TCHAR
|
strlen()
|
wcslen()
|
_tcslen()
|
strcat()
|
wcscat()
|
_tcscat()
|
strchr()
|
wcschr()
|
_tcschr()
|
strcmp()
|
wcscmp()
|
_tcscmp()
|
strcpy()
|
wcscpy()
|
_tcscpy()
|
strstr()
|
wcsstr()
|
_tcsstr()
|
strrev()
|
_wcsrev()
|
_tcsrev()
|
printf()
|
wprintf()
|
_tprintf()
|
sprintf()
|
swprintf()
|
_stprintf()
|
scanf()
|
wscanf()
|
_tscanf()
|
그리고 기타 다른 Library를 사용할때도 보통 Multibyte에서 사용하는 Class형식들은 보통 Template 를 활용한 typedef 일 확률이 높다.
해당 class 정의로 가던지 MSDN 도움말을 활용해서 선언자체를 _TCHAR를 활용한 Template 로 하면
Unicode, Multibyte 공용으로 사용가능한 Code 작성이 가능하다.
대표적인 예로 std::tr1::regex 를 활용한 Code가 있는데, http://icysword.blog.me/220075712172 에서 확인 가능하다.
부득이하게 char* 또는 wchar_t* 형으로 무조건 변경해야 할때도 생기는데
그때는 MultiByteToWideChar 함수 나 WideCharToMultiByte함수를 활용하면 된다.
예제Code는 http://eslife.tistory.com/253 에서 확인이 가능하다.
댓글 없음:
댓글 쓰기