timeGetTimeで取得する値の49日制限について

[戻る]
ribenren 2007/12/07(金) 12:17:55
VC++.net 2005で開発しています。

timeGetTimeを使用して前回取得時との
時間差が60秒になったら実行する処理をしているのですが、
MSDNにPC起動後の通算時刻で49日以降は使用注意と書かれていました。

49日経過後のPCでtimeGetTimeを実行するとエラーになるのでしょうか?
それともまた0から開始されるのでしょうか?
また0から開始されるのでしたら60秒経過又は以前の時刻よりも減ったらという条件で対
応出来ると考えています。

tetrapod 2007/12/07(金) 12:45:23
っていうかきっちり MSDN に解説書いてあるんだけど読んでいない?
>The return value wraps around to 0 every 2^32 milliseconds,
>which is about 49.71 days.
http://msdn2.microsoft.com/en-us/library/ms713418.aspx

> 又は以前の時刻よりも減ったら
そんな必要は無い。
そんなことしたら49日に1回、60秒より短い周期が発生する。
単に、今回の値−前回の値を演算すればいい(オーバーフロー分が勝手に補われる)

timeGetTime の絶対値で処理を行うことは注意が必要(というより禁止)
常に差分を取れば問題ない

ribenren 2007/12/07(金) 13:38:01
[[解決]]
回答ありがとうございました。
よく内容を理解していませんでした。。
強制終了などが起きないか心配していたのですが大丈夫そうですね。
方法も見直してみます。

古いスレッドには追加発言できません。