過去の履歴で検索してやってきました。
>WIN95系の場合、誤差が顕在化する以前にオーバーフローしてシステムが破綻します。
>timeGetTimeやGetTickCountを保持するシステム変数はunsign int ですから、
>保持できる最大値は 4294967295msec ≒ 49.71日です。
>従って、Win95系マシンを50日つけっぱなしにすれば、破綻を確認できます。
Declare Function timeGetTime Lib "winmm.dll" () As Long
でlongを超えるとオーバーフローすると思いますが。
その後値は0から始まりますか。
timeGetTime 連続稼働で使うためにはどうすればよろしいのでしょうか。
お願いいたします。
MSDNには下記のような記述がありました。
Note that the value returned by the timeGetTime function is a DWORD value. The return value wraps around to 0 every 2^32 milliseconds, which is about 49.71 days.
0に戻るようです。
ある時点Aともう一つの時点Bの差の絶対値ABS(A-B)を取れば0に戻っても処理できると思います。
ああ、、、無責任な書き込みでした。すみません。
絶対値じゃまずいですね。
AとBを判断してBの方が小さければ特殊な処理となりますね。
それにしても2点が50日を超えると判断のしようがなくなりますが。
msecのタイマーがほしいだけなので、0クリアされるならうれしいです。
ありがとうございました。
どっかで見たような書き込みが元ネタになってるようですが・・・。
>msecのタイマーがほしいだけなので、0クリアされるならうれしいです。
OSによっては深刻な結果になります。
http://www2.plala.or.jp/teppei/hardware/qanda/soft.htm#a27
Windows95/98を49日以上連続稼動するとハングする
ついでに
>50日を超えると判断のしようがなくなりますが。
Now()の戻り値を併用すれば判断可能かと。