유니코드를 위한 함수
1. 유니코드와 멀티바이트 간 변환 관련
1.1. MultiByteToWideChar()
1.2. WideCharToMultiByte()
1.3. W2A, A2W
#include <atlconv.h>
char szMult[] = "멀티녀석들!!";
wchar_t szWide[] = L"유니코드닷";
USES_CONVERSION; //무조건 정의
strcpy(szMult, W2A(szWide)); // 유니코드 -> 멀티바이트 복사
_tcscpy(szWide, W2A(szMult)); // 멀티바이트 -> 유니코드 복사
1.4. _bstr_t
#include <comutil.h>
#pragma comment (lib,"comsuppw.lib" )
_bstr_t str(L"asdfasfd가나다라");
wchar_t* pstrw = str;
char* pstra = str;
TCHAR* pstrt = str;
주의: sprintf 등 함수의 가변인자로 사용할 경우 반드시 타입을 명시해 줘야한다.
sprintf(pstra, "%s", (LPCSTR)pstrw);
2. 문자열 변환 관련
TCHAR szBuf[5] = "a";
StringCchCat(szBuf, _countof(szBuf), "bcdefgh"); //abcd
_tcsncat(szBuf, "bcdefgh", _countof(szBuf)); //abcdefgh
StringCch*계열 함수
- 널종료에 대해 신경쓰지 않아도 된다.
- strlwr()함수등 지원하지 않는 함수가 많다.
결론 : StringCch*계열 함수를 쓰되 지원되지 않는 함수에 대해 _tcs*계열 함수를 쓰자.