原文转自 http://blog.****.net/qq_23536063/article/details/52291332
【问题描述】
CString cstr;
sring str(cstr.GetBuffer());
编译上面代码,会出现标题中的错误。
【问题原因】因为项目编码方式为Unicode, CString中是WCHAR,string里是char,类型不匹配;CString实际是CStringT, 也就是模板类, 它在UNICODE环境下, 实际是CStringW, 而在多字符集下是CStringA,而std::string就是多字符集的
【解决方法】
CString cstr;
USES_CONVERSION;
string str(W2A(cstr));