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
블로그 이미지

란마12

,