【发布时间】:2019-01-25 18:03:19
【问题描述】:
在我基于 MFC 的应用程序中,此代码:
std::string stdString("MappingName");
std::cout << "as String: " << stdString << std::endl;
CString cString(stdString.c_str());
std::cout << "as CString: " << cString << std::endl;
产生这个输出:
as String: MappingName
as CString: 01DEA060
每次运行CString的值都不一样,但长度似乎是恒定的。其他一些结果是042219B0 和042C4378。
我已经尝试了this thread 中讨论的所有变体,结果都是一样的。我还尝试将 Visual Studio 项目中的字符集从 Use Unicode Character Set 更改为 Use Multi-Byte Character Set,同样没有效果。
转换失败的原因可能是什么?
编辑:
更多测试表明std::string 的值似乎没有什么区别:
tmp as String: The quick brown fox jumps over the lazy dog
tmp as CString: 00EAAF88
我还将字符集设置为 Not Set,这也没有帮助。
【问题讨论】:
标签: c++ visual-studio mfc c-strings stdstring