ON_COMMAND(ID_RECOVER, OnRecover)的问题,好郁闷哦!

江水2018 2003-05-30 06:10:34
是这样的,
afx_msg BOOL OnRecover ()

BOOL CMainFrame::OnRecover()
{
// TODO: Add your command handler code here
...
}
这样的函数,编译通不过。BOOL OnRecover ()不能改,因为别的版本中这个文件是好的。我这个版本编译报错:
D:\MainFrm.cpp(87) : error C2440: 'type cast' : cannot convert from 'int (__thiscall CMainFrame::*)(void)' to 'void (__thiscall CCmdTarget::*)(void)'
Pointers to members have different representations; cannot cast between them
...全文
123 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
江水2018 2003-06-01
  • 打赏
  • 举报
回复
有人帮我吗?
江水2018 2003-05-31
  • 打赏
  • 举报
回复
今天休息,没人啊??
江水2018 2003-05-31
  • 打赏
  • 举报
回复
上面的方法我多试过,不见效,实际上,这不是一个简单的东东,我是这么认为的。
按照书上的说的,一般的常理,这是行不通的。
可是偏偏人家的工程的里面是可以的呀??
哎!
继续郁闷中...
liuhongyong 2003-05-30
  • 打赏
  • 举报
回复
听你这么一说,比你还郁闷!
zhucde 2003-05-30
  • 打赏
  • 举报
回复
clean一下,再编译
江水2018 2003-05-30
  • 打赏
  • 举报
回复
注:
我知道如果改成void就可以了,但是我不能改,因为那是别人的程序,而且在别人的工程里面是可以运行的。
在mfc里面on_command的返回值是void,我知道。但是现在这样做,别人的程序运行是好的啊!
别人不同意更改,怎么办??我又不能不用这个文件的。
syl08341 2003-05-30
  • 打赏
  • 举报
回复
look
c0der 2003-05-30
  • 打赏
  • 举报
回复
是你的消息响应函数的问题,错误提示已经告诉你了。在通过ON_COMMAND宏影射消息时,响应函数的返回值必须是void,如
void OnRecover()
而你的是BOOL,也就是int(VC中BOOL实际就是int)
所以会提示你不能从int 转换成void的(指函数的返回值)

你把OnRecover函数的返回值改为void就行了
Earthdog 2003-05-30
  • 打赏
  • 举报
回复
响应ON_COMMAND宏的函数返回值就是void
江水2018 2003-05-30
  • 打赏
  • 举报
回复
我的工程里面原来有很多编译选项的。后来我新建了一个目录,载这个目录里面建了我的工程,这样子我把其他工程里面的文件映射到我的工程里面了,包括mainframe.cpp和头文件,也就是说这两个文件我根本就没动过。
qinghero 2003-05-30
  • 打赏
  • 举报
回复
删掉,再重新生成函数
曾经的猎狐 2003-05-30
  • 打赏
  • 举报
回复
转换有问题,你再看看

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧