【DEBUG】不能将参数 1 从“CString”转换为“const char *”
2024-08-24 04:38:59
1. 在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,随着编码方式会改变)。
2. “atof”: 不能将参数 1 从“CString”转换为“const char *”
问题描述:m_Data[number]=atof(strtemp);
其中,m_Data为double型,number为long型,strtemp为CString型的。
为什么会出现这样的错误?
error C2664: “atof”: 不能将参数 1 从“CString”转换为“const char *”
解决:用_ttof代替atof
最新文章
- 关于type erasure
- clientX、pageX、scrollLeft、offsetLeft、clientWidth、screen.width的用法和区别
- ajax实现文件下载
- 验证进入AppStore的评分界面
- 5月23日 JavaScript
- Spring安全框架 Spring Security
- android重写view和viewgroup的区别
- Delphi 实现无窗口移动(发WM_NCHITTEST消息计算,然后再发WM_SYSCOMMAND消息,带参数SC_DRAGMOVE)
- Oracle添加含有脏数据的约束
- svn统计代码行数(增量)
- linu系统文件授权命令
- C&;C++动态分配内存(手动分配内存)三种方式
- notepad++ 去空行
- 黄聪:xampp运行MySQL shutdown unexpectedly解决方案
- gdb调试程序函数名为问号,什么原因?step by step解决方案
- mysql安装时,提示:Failed to start service MYSQL80
- SQL Server 自动化运维系列 - 监控磁盘剩余空间及SQL Server错误日志(Power Shell)
- Java中equals,hashcode
- SQLMap-----初识
- [Dynamic Language] Python非子包引用
热门文章
- Python的包管理工具easy_install, setuptools, pip,distribute介绍
- Eclipse自定义HTML5,JSP模板
- PCB SQL SERVER 枚举分割函数(枚举值分解函数)
- go 学习成长之路
- 如何查看jdk的版本
- Mac OS安装octave出现的问题-'error:terminal type set to 'unknown'的解决'
- Java系列学习(零)-写在前面的话
- [ SHOI 2012 ] 随机树
- Mongodb——文档数据库
- JS高级——Function