CStringA、CStringW、string、wstring変換

3729 ワード

CString、CStringA、CStringWの関係MFCの工程で工程の符号化属性を設定することができる:①:UNICodeに対する符号化属性CStringはCStringWと定義され、その内部はWHARワイド文字である②:マルチバイトに対する符号化属性CStringはCStringAと定義され、その内部はchar単バイト文字である
std::string、std::wstringの関係①: std::string内部はchar単バイト文字②: std::wstring内部はWHARワイド文字
以上の関係から見ると、彼らの間の変換、すなわちwcharとcharの間の変換である.
 #include 
 CString cstring;
 CStringA cstringA;
 CStringW cstringW;
 string stdString;
 wstring stdWString;

// !CA2T CT2A 
cstring=CA2T(stdString.c_str());//std::string->CString
stdString=CT2A((LPCTSTR)cstring);//CString->std::string

cstringA=stdString.c_str();//std::string->CStringA
stdString=(LPCSTR)cstringA;//CStringA->std::string

cstringA=CW2A(stdWString.c_str());//std::wstring->CStringA
stdWString=CA2W((LPCSTR)cstringA);//CStringA->std::wstring

cstringW=CA2W(stdString.c_str());//std::string->CStringW
stdString=CW2A((LPCWSTR)cstringW);//CStringW->std::string

cstringW=stdString.c_str();//std::string->CStringW
stdWString=(LPCWSTR)cstringW;//CStringW->std::wstring

义齿
string myString;
CString str = myString.c_str();

CString回転string
CString myCString;
string str = string(myCString);

CString回転char*
#include 
USES_CONVERSION;
CString str;
char* pFileName =T2A(str);  
//char * pFileName = W2A(str); // 

basic_义齿
basic_string str;
CString myCString = CString(str.c_str());

転載:http://www.youranshare.com/blog/sid/35.html