[英]Static_cast compiler error in C++ sdi application
我有一個小的SDI應用程序,我試圖添加菜單使用的跟蹤,即。 用戶選擇某些菜單項的次數。
一些菜單項由View組件(DemoView.cpp)處理,其他菜單項由主app(DemoApp.cpp)處理。 由於跟蹤結構是在主應用程序中定義的,我相信當選擇菜單項(由視圖處理)時,我必須通過特殊消息通知View的父級。
如果這是正確的,我的問題是我無法創建正確的ON_MESSAGE命令。 它看起來像這樣:
ON_MESSAGE(WM_INCREASE_FREQ, &CDemoApp::OnIncreaseFreq)
其中OnIncreaseFreq()的定義如下:
LRESULT CDemoApp::OnIncreaseFreq(WPARAM, LPARAM)
但是我收到此錯誤:
error C2440: 'static_cast' : cannot convert from
'LRESULT (__thiscall CDemoApp::* )(WPARAM,LPARAM)' to
'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)'
我很感激任何幫助
根據錯誤,回調函數必須是從CWnd派生的類的成員函數。 使CDemoApp派生自CWnd,您的代碼應該編譯和工作。
如果您確定轉換,則需要使用另一個轉換。 它被稱為可怕的reinterpret_cast <>。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.