小弟刚用vs2003,遇到问题,请各位指教
小弟以前一直用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下编译?作者也没有提及啊。
或者还有别的地方需要设置,请高手指点