关于“不能将参数1 从“CString”转换为“const char *””的一些思考

12 篇文章 0 订阅

MFC开发时经常会遇到CString、string/std::string、char*等类型相互转换的问题,现将一些思考与心得记下来与大家分享:

 

 ①CString强制类型转换为const char*,在变量前加上:(char *)(LPCTSTR),这样做虽不会报错,但其转换后的值可能是乱码,不推荐这样做

 

②利用中间变量(string类型),原理:

1)CString类型不能自动装换为const char*。

2)const char*类型可自动装换为CString。

3)std::string类型调用c_str()方法就可轻松转换为const char*。

4)CString与std::string相互转换:

CString cs("Hello");

std::string s((LPCTSTR)cs);

 

std::string s("Hello");

CString cs(s.c_str());

 

综上,所以一般需要const char*类型时可用string变量转换,而需要CString类型时则直接用const char*类型赋值。应尽量避免CString转换为const char *的情况!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值