小弟刚用vs2003,遇到问题,请各位指教

bobojing8841 2006-04-19 10:53:06
小弟以前一直用vc6,最近想试着用用2003,结果一个在vc6下编译正常的程序,在2003下无法编译。

小弟的程序除了自己设计的几个类以外,还有一个从CWnd派生的CMainWnd类显示窗口,以及一个CWinApp类派生的CMyApp类(初学mfc,我看的书上的例程都是这样做的)。除此之外没有用到mfc类库的类。

为了防止编译器自己添加代码,我创建了一个控制台应用程序的空项目,然后自己添加事先写好的.h和.cpp文件,以及图标等资源,并在项目属性中添加mfc支持。然后编译,出现下列问题:(都是在申明消息映射表时出错)

1。ON_WM_CREATE():提示g:\My Documents\Visual Studio Projects\five\game.cpp(31) : error C2440: “static_cast” : 无法从“bool (__thiscall CMainWindow::* )(LPCREATESTRUCT)”转换为“int (__thiscall CWnd::* )(LPCREATESTRUCT)”
在匹配目标类型的范围内没有具有该名称的函数

2。ON_WM_LBUTTONDOWN():提示g:\My Documents\Visual Studio Projects\five\game.cpp(33) : error C2440: “static_cast” : 无法从“void (__thiscall CMainWindow::* )(UINT,POINT)”转换为“void (__thiscall CWnd::* )(UINT,CPoint)”
在匹配目标类型的范围内没有具有该名称的函数

这个程序在vc6下没有问题,在2003下就出错。我问了几个人,他们说不能从CWnd派生,要从CFrameWnd派生,可我看的书上都是从CWnd派生的啊,难道这些例程全错了?都不能在2003下编译?作者也没有提及啊。

或者还有别的地方需要设置,请高手指点
...全文
255 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
adintr 2006-04-19
  • 打赏
  • 举报
回复
从错误提示来看,第一个是消息函数的返回值需要从 bool 型改为 int 型
第二个的参数 POINT 改为 CPoint 试试
bobojing8841 2006-04-19
  • 打赏
  • 举报
回复
顺便提一下,ON_WM_PAINT()这个申明没有出错

24,852

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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