cb029 「ミリ秒単位の時間測定」(04/11/22 Mon)

 

← 戻る C++ Builderメニュー 次へ → ☆ Top ☆

 

ストップウォッチを作ったり、正確な時間を計ったり、そんな時に使うんですか。

とりあえずは簡単な方から。

☆GetTickCount()を使う☆

void __fastcall TForm1::Button5Click(TObject *Sender)
{
DWORD tcount;  //unsigned tcount; でも int tcount;でもOK(ただし32bit環境)
tcount = GetTickCount();
Label1->Caption = tcount;
}

簡単ですが、これだけでは、「Windowsを起動してからの経過秒」をミリ秒単位で返してくるので、

5525855とかすんごい数値が入ります。実際使用する際は、引き算するとか工夫が必要ですね。

あと、DWORD型で宣言してますが、これは「32bit符号(±の区別)なし整数型」 です。

ま、経過時間を返すので、マイナスは必要ないってことで符号なしなんですよ。

別にint型でも使えますよ。ただし、int型だと実行する環境が16bit環境だと扱える数値が極端に

少なくなる(32bit⇒16bit)ので危険かもです。

 

さてもう1つの方法は、timeGetTime()を使います。ただしこっちは、

ソースファイルの先頭で、「mmsystem.hをインクルード」すると書いて、

なおかつ「プロジェクトに追加」で、winmm.libを読みこんでおきます。

この2つの準備が必要です。

☆timeGetTime()を使う☆

#include "mmsystem.h"
//<winmm.lib>をプロジェクトに追加
void __fastcall TForm1::Button4Click(TObject *Sender)
{
DWORD scount;
scount = timeGetTime();
Label2->Caption = scount;
}

こっちも「Windowsを起動してからの経過秒」を取得します。

まぁどっちにしても、利用するには、ちょっと工夫が必要ですね。

 

← 戻る C++ Builderメニュー 次へ → ☆ Top ☆

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送