플밍

CString, std::string, std::wstring 상호 변환 본문

프로그래밍/C/C++

CString, std::string, std::wstring 상호 변환

너구리안주 2013. 11. 4. 00:53

CString <=> std::string <=> std:wstring 상호변환

확실히 이해하고 암기하자!!

#ads_1

ANSI <=> UNICODE 변환함수 : A(Ansi), T(Unicode)

ANSI => UNICODE : CA2CT( [ANSI 문자열] )

UNICODE => ANSI : CT2CA( [UNICODE 문자열] )

 

 

객체에서 원시 Buffer 구하기

std::string =>str.c_str()

CString =>str.operator LPCWSTR()

#ads_2

변환 예제 :

CString cstr = _T("CString문자열");
std::string str = "string문자열";
std::wstring wstr = L"wstring문자열";

CString cstr2;
std::string str2;
std::wstring wstr2;

//string => CString 으로 변환
cstr2 = CA2CT(str.c_str());
MessageBox(cstr2.GetBuffer(0), _T("string => CString"), MB_OK);

//wstring => CString 으로 변환
cstr2 = wstr.c_str();
MessageBox(cstr2.GetBuffer(0), _T("wstring => CString"), MB_OK);

//CString => string 으로 변환
str = CT2CA(cstr.operator LPCWSTR());
MessageBox(CA2CT(str.c_str()), _T("CString => string"), MB_OK);

//wstring => string 으로 변환
str = CT2CA(wstr.c_str());
MessageBox(CA2CT(str.c_str()), _T("wstring => string"), MB_OK);

//CString => wstring
wstr = cstr.operator LPCWSTR();
MessageBox(wstr.c_str(), _T("CString => wstring"), MB_OK);

//string => wstring
wstr = CA2CT(str.c_str());
MessageBox(wstr.c_str(), _T("string => wstring"), MB_OK);

#ads_3

Comments