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 *”编译器出现如上提示!我是按书上写的程序,在我自己写的程序编译无法通过,但在在书中光盘中,提供的代码,可以通过本人新手,麻烦各位给点指点。谢谢!
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 *”编译器出现如上提示!我是按书上写的程序,在我自己写的程序编译无法通过,但在在书中光盘中,提供的代码,可以通过本人新手,麻烦各位给点指点。谢谢!
解决方案 »
- 在JS调用Activex的时候,如何通过dispid得到被调用的函数名
- MFC用链表存储一个对象的时候,链表到底存了些什么数据?变量?函数?或者是其它?
- 配置了dx90bsdk,为什么还会出现directdraw.h的错误
- 成熟的SIP PHONE代码出售
- 如何检测系统正在关闭(或者注销、重启)?需要在第一时间知道,而不是等待本应用程序受到END_SESSION消息。
- 如何将YUY2图像显示在YUY2的OVERLAY上
- 求助:构造位图并显示出错.急!
- 这是什么错误:First-chance exception in MyCSD.exe (HOOKDLL.DLL): 0xC0000005: Access Violation.
- 怎么截获clistctrl 上的WM_MOUSEMOVE 或者这个根本不可能,请大家帮帮我!
- VC 怎样实现 随机生成 充值卡,一堆十几位不重复数字
- MFC多线程问题 如下
- 求解答:IDispatch接口该如何设置回调
光盘的代码默认是在VC6.0中编的,没有设置为UNICODE,所以你转成VS打开也不会有问题。当你自己在VS中NEW一个工程的时候,默认的是UNICODE编码,宽字节不能用atof。如果你一定要用atof,可以先将szFirst,用WideCharToMultiByte转成ANSI,再用atof。
如果不想转,你可以用wtoi、wtof等
还有一个办法就是要新建工程时,取消默认的UNICODE选项。
再请问一下szReslu.Format("%f",dbReslu);该怎么改呢
或者
szReslu.Format(_T("%f"),dbReslu);
L表示显示指定UNICODE,
_T()宏是通过检测_UNICODE宏添加L标记