在之前的公司项目中用到的编码方式都是用多字节的方式,并没有用到过Unicode,今天在从CString转到string的时候,按照原来多字节的方式std::string str = CString temp("aaa").GetBuffer(0);来转换,发现总是不行,查阅了资料,才发现Unicode下CString是宽字节,而string是窄字节,因此不能用以上的方法进行转换,具体解决方法如下:
USES_CONVERSION;
CString temp = “aa”;
string strtemp = W2A(temp.GetBuffer(0));
这样 ,问题就解决了,记录一下以后备用