CString 转化成 char*的路程

今天突然没有事情于是就去学习了一下MFC编程。用的是VS2010。这就出现了问题。于是调试是CString转换成char *的问题。于是在网上找资料。

1、CString s;

char *p=(LPSTR)(LPCTSTR)s;

这种转化没有问题。我在调试的时候却发现s不对。原来这样只是得到了s的第一个字符。也就是说p里面只有s的第一个字符,其他没有转换成功。

2、const char* p=s;

这个转化直接报错。说是无法从“wchar_t *”转换成“const char*”。这个问题我在后面才知道一种解决方案是:你在vs2010中默认字符集是UNICODE字符集,CString中字符以wchar_t的形式来存储的,而不是char。你在项目-》属性-》配置属性 有一个字符集,可以改字符集,改成多字节字符集就行了。这样就没有问题了。

3、strcpy(p,s.GetBuffer());

这种方式我也是没有通过。

4,、const char* p=s.GetBuffer(sizeof(s))

这个情况也2是一样的。解决办法也是一样的。

其余的情况我就没有再测试了。

希望有我这样情况的同学可以获得需要的帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值