通知
すべてクリア
Topic starter
2007年12月7日 12:17 PM
VC++.net 2005で開発しています。
timeGetTimeを使用して前回取得時との
時間差が60秒になったら実行する処理をしているのですが、
MSDNにPC起動後の通算時刻で49日以降は使用注意と書かれていました。
49日経過後のPCでtimeGetTimeを実行するとエラーになるのでしょうか?
それともまた0から開始されるのでしょうか?
また0から開始されるのでしたら60秒経過又は以前の時刻よりも減ったらという条件で対
応出来ると考えています。
2007年12月7日 12:45 PM
っていうかきっちり 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 の絶対値で処理を行うことは注意が必要(というより禁止)
常に差分を取れば問題ない
Topic starter
2007年12月7日 1:38 PM
回答ありがとうございました。
よく内容を理解していませんでした。。
強制終了などが起きないか心配していたのですが大丈夫そうですね。
方法も見直してみます。