(LPTIMECALLBACK)が「無効な型変換です」

[戻る]
No31 2013/08/29(木) 18:05:32
マルチメディアタイマーを使いたいと思い、

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 2013/08/29(木) 19:32:27
そのエラーメッセージは Visual C++ 系ではないように見えるが、処理系は何?
エラーメッセージは表示されたものと一字一句同じ?

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

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

No31 2013/08/29(木) 21:49:18
[[解決]]
失礼しました。

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

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



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



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

dummy1,DWORD dummy2)



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



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



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

仲澤@失業者 2013/08/30(金) 11:22:31
細かいことで恐縮ですが、MMタイマーでのコールバックは

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

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

古いスレッドには追加発言できません。