读书人

相关格式的转换

发布时间: 2012-10-21 09:00:07 作者: rapoo

有关格式的转换!
double dbFirst=atof(szFirst.GetBuffer(0));
szFirst.ReleaseBuffer(0);

szFirst是CString类型的。。

1>e:\mfc_p\visual.cpp开发实战宝典\6.4\clc\clc\clcdlg.cpp(172) : error C2664: “atof”: 不能将参数 1 从“wchar_t *”转换为“const char *”

编译器出现如上提示!

我是按书上写的程序,在我自己写的程序编译无法通过,但在在书中光盘中,提供的代码,可以通过。。。

本人新手,麻烦各位给点指点。谢谢!


[解决办法]
你的编译器版本不是VC6.0
光盘的代码默认是在VC6.0中编的,没有设置为UNICODE,所以你转成VS打开也不会有问题。

当你自己在VS中NEW一个工程的时候,默认的是UNICODE编码,宽字节不能用atof。

如果你一定要用atof,可以先将szFirst,用WideCharToMultiByte转成ANSI,再用atof。
如果不想转,你可以用wtoi、wtof等
还有一个办法就是要新建工程时,取消默认的UNICODE选项。


[解决办法]
工程设置中,不要使用Unicode字符集,使用多字节字符集。
[解决办法]
使用UNICODE版本的函数_wtol _wtoi 就可以了
[解决办法]
_wtof 这个是转换成double的
[解决办法]

探讨

非常感谢!
再请问一下

szReslu.Format("%f",dbReslu);

该怎么改呢

读书人网 >VC/MFC

热点推荐