MFC “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”

编译错误提示:

error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
1>        从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast

更改定义:
afx_msg void OnRecvData(WPARAM wParam, LPARAM lParam);

afx_msg LRESULT OnRecvData(WPARAM wParam, LPARAM lParam);

编译通过

LRESULT是一个数据类型,
MSDN: 32-bit value returned from a window procedure or callback function
指的是从窗口程序或者回调函数返回的32位值。

时间: 2024-10-09 23:31:28

MFC “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”的相关文章

error C2440: “static_cast”: 无法从“LRESULT (__thiscall CTextProgressCtrl::* )(UINT,LPCTSTR)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)

转自原文 error C2440 “static_cast” 无法从“void (__thiscall C* )(void)... error C2440: “static_cast”: 无法从“LRESULT (__thiscall CTextProgressCtrl::* )(UINT,LPCTSTR)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM). 开发平台由VC6.0升级至VS2005以上的版本,需要将原有的项目迁移,可能碰到类似错误:

消息传递MFC error C2440 “static_cast” 无法从“void (_thiscall )(void)”转换为“LRESULT

转载至:http://www.educity.cn/wenda/566627.html error C2440 “static_cast” 无法从“void (__thiscall )(void)”转换为“LRESULTerror C2440 “static_cast” 无法从“void (__thiscall CPppView )(void)”转换为“LRESULT (__thiscall CWnd )(WPARAM,LPARAM)” 不能转换void (_thiscall CMainFram

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

在VC++6.0向导中完成项目迁移到VS2012版的错 编译时遇到两个问题,首先是 error C2440: "static_cast": 无法从"void (__thiscall CMainFrame::* )(BOOL,HTASK)"转换为"void (__thiscall CWnd::* )(BOOL,DWORD)" 1>          从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast err

MFC STATIC,Picture控件使用及无法添加变量的问题

http://blog.csdn.net/caowei880123/article/details/6261468 无法添加,后来看到评论,反思了一下,发现是因为用对话框生成了关联的类,然后又修改了对话框的ID号,生成的头文件中有enum {IDD = IDD_Diaglog1}改一下ID号就行了. 具体原因,是我在前面手抖了一下, 将dialog的ID号改了. 以下是原文: 无法为MFC对话框程序的static添加变量(因而无法改变文本) 1.首先要把它的ID改一下,不能为默认的IDC_STA

error C2440

error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”1>        从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast 搜索发现为开发平台迁移问题.由vc6.0升级至vs2005以上平台均会遇到这情况,原因为 VS2005对消息的检查更为严格,以前在VC6下

VC++6.0版本程序转成VS2010版

直接转换的时候遇到两个问题: 1.预编译头文件*.PCH找不到 2.static_cast": 无法从"void (__thiscall CView2::* )(void)"转换为"LRESULT (__thiscall CWnd::* 1.来源:http://www.zhuyanfeng.com/archives/2231 错误: fatal error C1083: 无法打开预编译头文件:"Debug\xxx.pch": No such fi

VC++6.0版本号程序转成VS2010版

直接转换的时候遇到两个问题: 1.预编译头文件*.PCH找不到 2.static_cast": 无法从"void (__thiscall CView2::* )(void)"转换为"LRESULT (__thiscall CWnd::* 1.来源:http://www.zhuyanfeng.com/archives/2231 错误: fatal error C1083: 无法打开预编译头文件:"Debug\xxx.pch": No such fi

关于vs2008的error C2440

关于vs2008的error C2440 (2012-04-24 18:27:11) 转载▼ 不能转换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 (__th

MFC-消息分派

前言 由于工作需要,这几天学了一点MFC,在AFX里看到很多熟悉的东西,如类型信息,序列化,窗口封装和消息分派.几乎每个界面库都必须提供这些基础服务,但提供的手法却千差万别.MFC大量地借用了宏,映射表来实现,而VCL则更多的在语言级别上给与支持.这其实是很容易理解的,因为C++是一个标准,不会因某个应用而随便扩展语言:相反Delphi完全由一个公司掌握,因此每支持一项新技术,变化最大的往往是语言本身. 学习MFC的代码,再对照VCL的实现,这真是一个很有意思的过程,其中可以看到两个框架在一些设