Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
2016-02-28 22:06
357 查看
Cstring转int型问题(error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”))
在vc6.0下用CString str;num = atoi(str);就可以顺利取到num;但是同样代码拿到vs2008就报错,error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”;
于是把CString 强制转换为char*,num = atoi((LPSTR)(LPCTSTR)str);
编译不报错,运行成功。但是后面发现,本来str="123",num应该是123,结果却只是1,试了其他的都是只取最前面一位。
后面百度中无意发现,原来是,vc6.0默认是ansi编码,所以atoi可以直接用,结果也正确;但是VS2008默认的编码方式是Unicode,Unicode下不能用atoi,而要使用_wtoi 也可以直接使用_ttoi,它在 ANSI 编码系统中被编译成atoi(),而在
Unicode 编码系统中编译成_wtoi()。或者把vs改成ansi编码也行。
num = _ttoi(str);(_ttoi类似于_T,随着编码方式会改变)。
相关文章推荐
- JNI 的使用
- windows下ffmpeg录制摄像头内容
- iOS Apps 开发(Swift)(9)——Implement Navigation
- 利用css和javascript实现简单的计算器
- HTML5-新API-geolocation-实例-距离跟踪器
- 百度地图图片叠加层切片工具:制作边界透明覆盖物
- 算法代码实现之归并排序,C/C++实现,自顶向下与自底向上两种方式
- 2016关键词
- 婺源写生手稿
- 【Android学习入门】Android中activity的启动模式
- Tiny6410学习移植usb无线网卡(二)
- oracle查看锁表进程,杀掉锁表进程
- 瓦尔登湖的访客——读《瓦尔登湖》有感
- 标签id为字符串形式,如何通过该字符串寻找标签
- java-笔记
- linux kill、killall、pkill、xkill 的用法
- echo中的-n 与-e选项
- gradle与gradle wrapper关系,以及版本关系
- java.io.NotSerializableException错误解决方法
- Python图像处理库PIL的ImageFont模块介绍