解決C++ 無法從void 轉(zhuǎn)換為LRESULT的方法詳解
更新時間:2013年05月16日 10:03:17 作者:
本篇文章是對C++中無法從void轉(zhuǎn)換為LRESULT的解決方法進行了詳細的分析介紹,需要的朋友參考下
這個應該是一個MFC程序,ON_MESSAGE是添加消息響應函數(shù),這句話就是添加熱鍵WM_HOTKEY的響應函數(shù)。當你注冊了熱鍵之后,當用戶按下熱鍵,會執(zhí)行OnHotKey函數(shù)來處理這個消息。錯誤就應該是OnHotKey這個函數(shù)的聲明錯誤了,返回值應該是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)”轉(zhuǎn)換為“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
解決方法如下:首先,把原來的消息函數(shù)返回值類型改為LRESULT,函數(shù)內(nèi)可以隨便寫個return 0;然后消息函數(shù)的參數(shù)必須改寫成(WPARAM wParam,LPARAM lParam)而不論這兩個。
ON_MESSAGE(WM_message,OnMyMessage);
OnMessage返回值必須為LRESULT,其形式為:afx_msg LRESULT OnMessage(WPARAM, LPARAM);
如果不符合,則有錯誤提示:error C2440: “static_cast”:無法從“void (__thiscall CMainFrame::* )(void)”轉(zhuǎn)換為“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”
解決方法如下:首先,把原來的消息函數(shù)返回值類型改為LRESULT,函數(shù)內(nèi)可以隨便寫個return 0;然后消息函數(shù)的參數(shù)必須改寫成(WPARAM wParam,LPARAM lParam)而不論這兩個。
相關(guān)文章
一文帶你了解C語言中的0長度數(shù)組(可變數(shù)組/柔性數(shù)組)
眾所周知,?GNU/GCC?在標準的?C/C++?基礎上做了有實用性的擴展,?零長度數(shù)組(Arrays?of?Length?Zero)?就是其中一個知名的擴展,本文就來聊聊零長度數(shù)組的相關(guān)知識吧2023-03-03
C++實現(xiàn)統(tǒng)計代碼運行時間的示例詳解
這篇文章主要為大家詳細介紹了C++一個有趣的小項目——統(tǒng)計代碼運行時間,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2023-05-05

