error C2440 “static_cast” 无法从“void (__thiscall CPppView )(void)...

转载 2012年03月23日 15:55:02

不能转换void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)2010-05-13 11:35开发平台由VC6.0升级至VS2005,需要将原有的项目迁移,可能碰到类似错误:
error C2440: 'static_cast' : cannot convert from 'void (__thiscall CMainFrame::* )(void)' to 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'  

VS2005对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2005下编译不通过

ON_MESSAGE(WM_message,OnMyMessage);
   OnMyMessage返回值必须为LRESULT,其形式为:afx_msg LRESULT OnMyMessage(WPARAM, LPARAM);如果不符合,则有错误提示:
     error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
        在匹配目标类型的范围内没有具有该名称的函数
     error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
        在匹配目标类型的范围内没有具有该名称的函数

解决方法如下:

首先,把原来的消息函数返回值类型改为LRESULT,函数内可以随便写个return TRUE; 然后消息函数的参数必须改写成(WPARAM wParam,LPARAM lParam)而不论这两个参数是否用得到;最后,消息映射如ON_MESSAGE(WM_message,& OnMyMessage)

error C2440: “static_cast”: 无法从“void (__thiscall xxxxxx::* )(LON

不能转换void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)2010-05-13 11...
  • xin_yu_xin
  • xin_yu_xin
  • 2015年01月29日 00:04
  • 1798

error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)

    当用VS2010打开VC6的程序时会出现以下问题:error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARA...
  • u014023993
  • u014023993
  • 2014年04月02日 14:11
  • 1723

数字电视 frontend tuner demod

转自:http://hi.baidu.com/yul1001/item/92dcc77f290b642b5d1789d1 今天听了关于Tuner和Demodulator的讲座,记录一点关于Tun...
  • haima1998
  • haima1998
  • 2013年12月14日 21:22
  • 2472

错误 1 error C2440: “static_cast”: 无法从“void (__thiscall ClientDlg::* )

不能转换void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)2010-05-13 11...
  • hushiwei1993
  • hushiwei1993
  • 2015年04月20日 17:11
  • 1439

error C2440: “static_cast” : 无法从“void (__thiscall CMainFrame::* ) (NMTOOLBARA *,LRESULT *)”转换为“void

将一个项目由vc6转 到vc7下面,ON_NOTIFY的NMTOOLBAR老是提示错误 error C2440: “static_cast” : 无法从“void (__thiscall CMainF...
  • hnust_xiehonghao
  • hnust_xiehonghao
  • 2014年05月25日 20:43
  • 2024

error C2440 “static_cast” 无法从“void (__thiscall C* )(void)...

开发平台由VC6.0升级至VS2005以上的版本,需要将原有的项目迁移,可能碰到类似错误: error C2440:  “static_cast” 无法从“void (__thiscall C* )...
  • whhitxjl
  • whhitxjl
  • 2016年01月20日 11:04
  • 10010

error C2440: “static_cast”: 无法从“void (__thiscall CXPButton::* )(WPARAM,LPARAM)”转换为“LRESULT (__thisca

不能转换void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)2010-05-13 11...
  • kulala082
  • kulala082
  • 2016年12月06日 16:39
  • 151

error C2440: “static_cast”: 无法从“void (__thiscall CVCadView::* )(int)”转换为“void (__thiscall CCmdTarget

项目从vc6.0升级到用vs2013编译,遇到了一些问题 1."fabs": 对重载函数的调用不明确 2.error C2593: “+=”不明确 3.for循环int i的声明要放到外边 4...
  • u011978022
  • u011978022
  • 2015年11月27日 20:45
  • 1500

error C2440: “static_cast”: 无法从“void (__thiscall CMFCApplication2Dlg::* )(void)”转换为“void (__thiscall

在VS2012中使用ON_CONTROL_RANGE设置多个控件使用同一个消息处理函数。消息映射:ON_CONTROL_RANGE(BN_CLICKED, IDC_BUTTON1, IDC_BUTTO...
  • q871063970
  • q871063970
  • 2017年03月30日 23:05
  • 551

error C2440: “static_cast”: 无法从“void (__thiscall CPppView::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscal

转自VC错误:http://www.vcerror.com/?p=1574 问题描述: 在把VC6.0 工程转到VS2005工程中可能遇到以下错误: error C2440: “stat...
  • swanabin
  • swanabin
  • 2015年07月04日 17:28
  • 1055
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:error C2440 “static_cast” 无法从“void (__thiscall CPppView )(void)...
举报原因:
原因补充:

(最多只允许输入30个字)