static_cast”: 無法從“void (__cdecl CImageView::* )(UINT)”轉換爲“void (__cdecl CWnd::* )(UINT_PTR)”

在寫 MFC界面程序的時候 在使用ON_WM_TIMER()的時候報類型轉換的錯誤

如下是解決方案

提示錯誤在消息映射處:ON_WM_TIMER()。

分析報錯的是類型轉換不一致導致的錯誤,所以上手修改,轉到CImageView中找到消息函數的聲明和定義:

afx_msg void OnTimer(UINT nIDEvent);

聲明和定義的函數參數類型修改爲

afx_msg void OnTimer(UINT_PTR nIDEvent);

編譯成功。這些類型在低版本編譯是沒問題的,但高版本的編譯器對消息的檢查更爲嚴格,所以有不一致的就會報錯。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章