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*계열 함수를 쓰자.
'library > CRT' 카테고리의 다른 글
메모리 누수 체크 (0) | 2011.10.27 |
---|---|
errno (0) | 2011.01.08 |
시간과 날짜와 관련된 라이브러리 함수들 (0) | 2010.12.15 |
문자열 함수들의 버퍼 체크 방법 차이 (0) | 2010.11.24 |
코딩시 Unicode 관련 고려사항 (0) | 2010.11.23 |