返回信息流用VS2013新建的C++ Win32控制台应用程序,如下将CString类型字符串转换为string类型字符串的代码编译一直报错:
CString s1 = "12345";
string s2 = s1.GetBuffer(0);//此行报错
错误信息:
error C2440: “初始化”: 无法从“wchar_t *”转换为“std::basic_string<char,std::char_traits<char>,std::allocator<char>>
IntelliSense: 不存在从 "LPWSTR" 转换到 "std::basic_string<char, std::char_traits<char>, std::allocator<char>>" 的适当构造函数
感谢各位大神指导![ema23][ema23][ema23]
这是一条镜像帖。来源:北邮人论坛 / cpp / #94311同步于 2016/12/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
【问题】C++中CString和string的转换问题
xyh1re
2016/12/29镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
解决了,是因为工程的字符集不是多字节字符集,将工程属性设置为多字节字符集即可,方法是:右键点击你的工程,选择Properties\Configurations Properties\General,在右侧的Project Defaults下的Character Set选择Use Multi-Byte Character Set
感谢分享!没考虑过往c++方向发展,这方面也不怎么懂,实验室项目需要,临时搬运一点代码过来用[ema35]
【 在 authuir (Authuir) 的大作中提到: 】
: 其实现在做MFC的越来越少了,个人认为做QT或者WPF都会比MFC好一些
通过『我邮2.0』发布
【 在 xyh1re (沐阳) 的大作中提到: 】
: 感谢分享!没考虑过往c++方向发展,这方面也不怎么懂,实验室项目需要,临时搬运一点代码过来用[ema35]
或者`std::string`改为`std::wstring`试试?
【 在 xyh1re 的大作中提到: 】
: 用VS2013新建的C++ Win32控制台应用程序,如下将CString类型字符串转换为string类型字符串的代码编译一直报错:
: CString s1 = "12345";
: string s2 = s1.GetBuffer(0);//此行报错
: ...................