簡體   English   中英

C ++ sdi應用程序中的Static_cast編譯器錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM