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

最新文章

  1. 关于type erasure
  2. clientX、pageX、scrollLeft、offsetLeft、clientWidth、screen.width的用法和区别
  3. ajax实现文件下载
  4. 验证进入AppStore的评分界面
  5. 5月23日 JavaScript
  6. Spring安全框架 Spring Security
  7. android重写view和viewgroup的区别
  8. Delphi 实现无窗口移动(发WM_NCHITTEST消息计算,然后再发WM_SYSCOMMAND消息,带参数SC_DRAGMOVE)
  9. Oracle添加含有脏数据的约束
  10. svn统计代码行数(增量)
  11. linu系统文件授权命令
  12. C&C++动态分配内存(手动分配内存)三种方式
  13. notepad++ 去空行
  14. 黄聪:xampp运行MySQL shutdown unexpectedly解决方案
  15. gdb调试程序函数名为问号,什么原因?step by step解决方案
  16. mysql安装时,提示:Failed to start service MYSQL80
  17. SQL Server 自动化运维系列 - 监控磁盘剩余空间及SQL Server错误日志(Power Shell)
  18. Java中equals,hashcode
  19. SQLMap-----初识
  20. [Dynamic Language] Python非子包引用

热门文章

  1. Python的包管理工具easy_install, setuptools, pip,distribute介绍
  2. Eclipse自定义HTML5,JSP模板
  3. PCB SQL SERVER 枚举分割函数(枚举值分解函数)
  4. go 学习成长之路
  5. 如何查看jdk的版本
  6. Mac OS安装octave出现的问题-'error:terminal type set to 'unknown'的解决'
  7. Java系列学习(零)-写在前面的话
  8. [ SHOI 2012 ] 随机树
  9. Mongodb——文档数据库
  10. JS高级——Function