文系グラマですみません。
GetTickCountについてネットで調べてたんですが、戻り値をIntegerで受けてる場合とCardinalで受けている場合がありました。
Cardinalで受けた方が大きい値を受けうるとおもうんですが、GetTickCountが返す値の最大値っていくつなんでしょうか?
試していませんが、49.7日をミリ秒にした値
ぐらいかと思います。
>戻り値をIntegerで受けてる場合とCardinalで受けている場合がありました。
ヘルプによると、戻り値はDWORDのようです。
DWORD GetTickCount(VOID)
The elapsed time is stored as a DWORD value. Therefore, the time will wrap around to zero if Windows is run continuously for 49.7 days.
GetTickCount64というAPIが追加されてCardinalの最大値4294967295ミリ秒(49.7日)の壁はなく、実質的には無制限になったと言えるけど、50日も経てばPCの時間は数十秒くるうと思われるので、もし長期間で精度を要求するならネット上のタイムサーバーから日時を取得する方法がいい。
>49.7日をミリ秒にした値
ありがとうございます。
なんとかあふれないように組み込んでみたいと思います。
ツイート | ![]() |