フォーラム: ヘルプ (スレッド #34963)

clx::timerについて (2014-01-24 16:12 by pine #71361)

clx::timerをWindowsで使っていて問題に直面しました。
この関数ですが内部でtimeGetTime()の戻り値をdoubleに変換しているようですが、これではWindows起動後24.9日あるいは49.7日経った時に符号が変わってしまうため、経過時間がとんでもない値になってしまいます。つまり、start時点のtimeGetTime()の戻り値が0x7FFFFFFFで、経過後の戻り値が0x80000000だったら、ということです。
内部ではDWORDのまま保持しておいて、DWORDのまま差分を取ってからdoubleに変換すべきだと思います。

メッセージ #71361 への返信×

Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。 ログインする