手机
当前位置:查字典教程网 >编程开发 >C语言 >解决C++ 无法从void 转换为LRESULT的方法详解
解决C++ 无法从void 转换为LRESULT的方法详解
摘要:这个应该是一个MFC程序,ON_MESSAGE是添加消息响应函数,这句话就是添加热键WM_HOTKEY的响应函数。当你注册了热键之后,当用户...

这个应该是一个MFC程序,ON_MESSAGE是添加消息响应函数,这句话就是添加热键WM_HOTKEY的响应函数。当你注册了热键之后,当用户按下热键,会执行OnHotKey函数来处理这个消息。错误就应该是OnHotKey这个函数的声明错误了,返回值应该是LRESULT. VS2008对消息的检查更为严格,以前在VC6下完全正常运行的消息映射在VS2008下编译不通过

ON_MESSAGE(WM_message,OnMyMessage);

OnMessage返回值必须为LRESULT,其形式为:afx_msg LRESULT OnMessage(WPARAM, LPARAM);

如果不符合,则有错误提示:error C2440: “static_cast”:无法从“void (__thiscall CMainFrame::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”

解决方法如下:首先,把原来的消息函数返回值类型改为LRESULT,函数内可以随便写个return 0;然后消息函数的参数必须改写成(WPARAM wParam,LPARAM lParam)而不论这两个。

【解决C++ 无法从void 转换为LRESULT的方法详解】相关文章:

C与C++ 无参函数的区别解析

深入C++中API的问题详解

c++类的隐式转换与强制转换重载详解

C++重载运算符的规则详解

浅谈内联函数与宏定义的区别详解

基于C++ list中erase与remove函数的使用详解

基于typedef的用法详解

基于C/C++时间函数的使用详解

基于C++浮点数(float、double)类型数据比较与转换的详解

C语言游戏必备:光标定位与颜色设置的实现方法

精品推荐
分类导航