首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

相关格式的转换

2012-10-21 
有关格式的转换!double dbFirstatof(szFirst.GetBuffer(0))szFirst.ReleaseBuffer(0)szFirst是CString

有关格式的转换!
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);

该怎么改呢

热点排行