C++ 编码问题
一、 使用函数_tcscpy_s: CStringtheString( "This is a test" ); int sizeOfString = (theString.GetLength() + 1); LPTSTR lpsz = new TCHAR[ sizeOfString]; _tcscpy_s(lpsz, sizeOfString, theString); 最后再转换一下lpsz为const型的 LPTSTR在UNICODE环境下编译是wchar_t类型 二、 CString str =_T("Hello World!"); char szStr[256]= {0}; wcstombs(szStr,str, str.GetLength()); const char * p= szStr; 其实还可能出现其它类似的问题,如: error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *” error C2039: “strcpy”:不是“ATL::CStringT<BaseType,StringTraits>”的成员 但是程序在VC6下编译得很好,经过研究发现是设置上有所不同。在VC6中,默认使用MBCS编码,即多字节字符;而VC8、VC7默认的是Unicode编码,所以... 关于这两种编码有何不同