1

1秒ごとに機能を開始するにはタイマーが必要です。

私は試しましSetTimerた、私のコード:

const UINT_PTR TIMER_ID = 1000;

DWORD DownloadThread()
{
    SetTimer(NULL, TIMER_ID, 1000, (TIMERPROC)DownloadSpeedCounter);
    /*some stuff*/
}

void DownloadSpeedCounter()
{
    /*some stuff*/
}

このコードをコンパイルして取得できませんerror C2440: 'type cast' : cannot convert from 'overloaded-function' to 'TIMERPROC'

また、クラスメンバーメソッドです。

4

2 に答える 2

2

これは、通常の関数をアプリケーション定義のコールバック関数として使用しようとしているためです。おそらく探しているのは、次のようなアプリケーション定義のコールバック関数です。

VOID CALLBACK DownloadSpeedCounter( 
HWND hwnd,        // handle to window for timer messages 
UINT message,     // WM_TIMER message 
UINT idTimer,     // timer identifier 
DWORD dwTime) {
     /* some stuff */
}

タイマーのコールバック関数の使用に関する追加情報については、この記事を参照してください。

于 2013-08-19T10:43:46.983 に答える