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