最終更新 2003 10/15 サンプルのダウンロード → API_timeBeginPeriod.lzh(43k) サンプルソースコード 前回のソースから変更部分だけを抜粋します timeBeginPeriod(1); //最小精度を設定 long startTime = timeGetTime(); //開始時間取得 RenderFrame(); //画面に絵を描いたり色々する long endTime = timeGetTime(); //終了時間取得 timeEndPeriod(1); //設定を解除 g_passTime = endTime - startTime; //終了時間−開始時間でかかった時間を計測 if( g_passTime < 0 ) g_passTime = 0; g_timeCount += g_passTime; //かかった時間を足す timeBeginPeriod 関数 timeEndPeriod 関数 対応しているバージョン 95, 98, Me, NT3.1以降, 2000, XP 使用するヘッダとライブラリ mmsystem.h winmm.lib ウィンドウズのバージョンにもよりますが、初期状態で timeGetTime() で 計測できる最小精度は1ミリ秒〜10ミリ秒です。 そのため、どんなに速い処理を行っても timeGetTime() に設定された 最小精度より少ない時間は計測できません。 この最小精度は timeBeginPeriod() で変更することができます。 ウィンドウズ2000(多分、XPも)では1ミリ秒の精度で計測できる ようです。 マシンのスペックにもよるのでしょうか・・・。 timeBeginPeriod() で精度を変更したら timeEndPeriod() で設定を 解除します。 timeBeginPeriod() を仕掛ける場所と、timeEndPeriod() で設定を 解除する場所はサンプルを参考にして下さい。 timeEndPeriod() の引数には timeBeginPeriod() に指定した引数と 同じ値を指定します。
前回のソースから変更部分だけを抜粋します timeBeginPeriod(1); //最小精度を設定 long startTime = timeGetTime(); //開始時間取得 RenderFrame(); //画面に絵を描いたり色々する long endTime = timeGetTime(); //終了時間取得 timeEndPeriod(1); //設定を解除 g_passTime = endTime - startTime; //終了時間−開始時間でかかった時間を計測 if( g_passTime < 0 ) g_passTime = 0; g_timeCount += g_passTime; //かかった時間を足す
timeBeginPeriod 関数 timeEndPeriod 関数 対応しているバージョン 95, 98, Me, NT3.1以降, 2000, XP 使用するヘッダとライブラリ mmsystem.h winmm.lib