マルチメディアタイマーを使いたいと思い、
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:無効な型変換です
と出ました。
この不具合は、どうすれば取れるでしょうか。
よろしくお願いします。
そのエラーメッセージは Visual C++ 系ではないように見えるが、処理系は何?
エラーメッセージは表示されたものと一字一句同じ?
エラーメッセージの意味するところが
[ LPTIMECALLBACK が未定義 ] であるなら #include 漏れ。
[ non-static メンバ関数は、非メンバ関数へ変換できない ] であるなら設計ミス。
情報不足でそれ以上は判断できないな
失礼しました。
開発環境はVisual Studio 2012のMFC(SDI)です。
エラーメッセージは一言一句同じです。
設計ミスを疑い、コードを洗いなおしたところ、
void CALLBACK timerProc(UINT uTimerID,UINT uMsg,DWORD dwUser,DWORD
dummy1,DWORD dummy2)
が二重定義されていました。
これの片方を削除したら、エラーが消えました。
ご助言、ありがとうございます。
細かいことで恐縮ですが、MMタイマーでのコールバックは
typedef void (CALLBACK TIMECALLBACK)(UINT uTimerID, UINT uMsg, DWORD_PTR
dwUser, DWORD_PTR dw1, DWORD_PTR dw2);
ですので、お間違いなく。