GetTickCountが返す最大値は?

解決


なか  2009-09-23 15:01:21  No: 35757

文系グラマですみません。

GetTickCountについてネットで調べてたんですが、戻り値をIntegerで受けてる場合とCardinalで受けている場合がありました。

Cardinalで受けた方が大きい値を受けうるとおもうんですが、GetTickCountが返す値の最大値っていくつなんでしょうか?


igy  2009-09-23 17:35:41  No: 35758

試していませんが、49.7日をミリ秒にした値
ぐらいかと思います。


igy  2009-09-23 17:53:20  No: 35759

>戻り値を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.


Vista以降なら  2009-09-23 21:15:47  No: 35760

GetTickCount64というAPIが追加されてCardinalの最大値4294967295ミリ秒(49.7日)の壁はなく、実質的には無制限になったと言えるけど、50日も経てばPCの時間は数十秒くるうと思われるので、もし長期間で精度を要求するならネット上のタイムサーバーから日時を取得する方法がいい。


なか  2009-09-23 21:58:24  No: 35761

>49.7日をミリ秒にした値

ありがとうございます。
なんとかあふれないように組み込んでみたいと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加