error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thisca
2015-09-20 20:25
585 查看
error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” 1> 从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast 搜索发现为开发平台迁移问题。 由vc6.0升级至vs2005以上平台均会遇到这情况,原因为 VS2005对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2005下编译不通过 // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnRecvData(WPARAM wParam, LPARAM lParam); DECLARE_MESSAGE_MAP() BEGIN_MESSAGE_MAP(CChatDlg, CDialog) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_EN_CHANGE(IDC_EDIT_RECV, &CChatDlg::OnEnChangeEditRecv) ON_BN_CLICKED(IDC_BTN_SEND, &CChatDlg::OnBnClickedBtnSend) ON_MESSAGE(WM_RECVDATA, &CChatDlg::OnRecvData) END_MESSAGE_MAP() 编译错误提示: error C2440: “static_cast”: 无法从“void (__thiscall CChatDlg::* )(WPARAM,LPARAM)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)” 1> 从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast 更改定义: afx_msgvoidOnRecvData(WPARAM wParam, LPARAM lParam); 为 afx_msg LRESULTOnRecvData(WPARAM wParam, LPARAM lParam); 编译通过 LRESULT是一个数据类型, MSDN: 32-bit value returned from a window procedure or callback function 指的是从窗口程序或者回调函数返回的32位值。 |
相关文章推荐
- 0919Android基础自定义ViewGroup
- 利用 fastjson.jar 把对象解析成Json 数据
- RS232 RS485 串口 电平标准
- [MFC]文档视图体系结构、单文档界面
- Spring AOP基础知识
- Windows下搭建IOS开发环境(一)
- 线程:Interrupt、Sleep、Join、线程同步--【J2SE】
- Different Ways to Add Parentheses——Leetcode
- 道量化交易程序猿(25)--Cointrader之MarketData市场数据实体(12)
- Github使用心得
- redis远程登录
- 技术人生:故事之四十六 互联网络给了我们什么
- 数据库习题1
- getParameter与getAttribute的区别
- 使用EasyUI弹出框页面样式乱了——控制弹出框位置
- 使用Git进行代码管理的心得
- Docker命令行探秘
- andriod PullToRefresh的使用 构建下拉刷新的listView
- 技术人生:故事之四十五 谁明白为什么信息化
- 【玩转GridView】之让GridView动起来(二)