(LPTIMECALLBACK)が「無効な型変換です」 – プログラミング – Home

通知
すべてクリア

[解決済] (LPTIMECALLBACK)が「無効な型変換です」


No31
 No31
(@No31)
ゲスト
結合: 11年前
投稿: 2
Topic starter  

マルチメディアタイマーを使いたいと思い、

void CALLBACK timerProc(UINT uTimerID,UINT uMsg,DWORD dwUser,DWORD
dummy1,DWORD dummy2)
{
(略)

}

と置き、タイマーの開始地点に

m_uiTimerID=::timeSetEvent(100,100,(LPTIMECALLBACK)
timerProc,NULL,TIME_PERIODIC);

と書いたところ、(LPTIMECALLBACK)の(に赤い波線が出て、

Error:無効な型変換です

と出ました。

この不具合は、どうすれば取れるでしょうか。

よろしくお願いします。


引用未解決
トピックタグ
tetrapod
 tetrapod
(@tetrapod)
ゲスト
結合: 22年前
投稿: 830
 

そのエラーメッセージは Visual C++ 系ではないように見えるが、処理系は何?
エラーメッセージは表示されたものと一字一句同じ?

エラーメッセージの意味するところが
[ LPTIMECALLBACK が未定義 ] であるなら #include 漏れ。
[ non-static メンバ関数は、非メンバ関数へ変換できない ] であるなら設計ミス。

情報不足でそれ以上は判断できないな


返信引用
No31
 No31
(@No31)
ゲスト
結合: 11年前
投稿: 2
Topic starter  

失礼しました。

開発環境はVisual Studio 2012のMFC(SDI)です。

エラーメッセージは一言一句同じです。

設計ミスを疑い、コードを洗いなおしたところ、

void CALLBACK timerProc(UINT uTimerID,UINT uMsg,DWORD dwUser,DWORD

dummy1,DWORD dummy2)

が二重定義されていました。

これの片方を削除したら、エラーが消えました。

ご助言、ありがとうございます。


返信引用
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 5年前
投稿: 828
 

細かいことで恐縮ですが、MMタイマーでのコールバックは

typedef void (CALLBACK TIMECALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR
dwUser, DWORD_PTR dw1, DWORD_PTR dw2);

ですので、お間違いなく。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました