[MFC&PostgreSQL] CString / std::string / std::wstring 변경방법
CString <=> std::string <=> std:wstring 상호변환
확실히 이해하고 암기하자!!
ANSI <=> UNICODE 변환함수 : A(Ansi), T(Unicode)
ANSI => UNICODE : CA2CT( [ANSI 문자열] )
UNICODE => ANSI : CT2CA( [UNICODE 문자열] )
객체에서 원시 Buffer 구하기
std::string =>str.c_str() =================> Postgres 에서는 libpq 명령을 string 으로 사용하므로 변환해서 사용해줘야 한다.
CString =>str.operator LPCWSTR()
변환 예제 :
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);
펌 : http://plming.tistory.com/63