ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
システム
>
ネットワーク
>
CLX C++ Libraries
>
フォーラム
>
ヘルプ
>
clx::timerについて
CLX C++ Libraries
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
Subversion
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
コミュニケーション
フォーラム一覧
ヘルプ (2)
公開討議 (19)
開発者 (24)
ニュース
フォーラム:
ヘルプ
(スレッド #34963)
話題(スレッド)一覧に戻る
RSS
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 への返信
×
題名
本文
メッセージ #71361 への返信 > clx::timerをWindowsで使っていて問題に直面しました。 > この関数ですが内部でtimeGetTime()の戻り値をdoubleに変換しているようですが、これではWindows起動後24.9日あるいは49.7日経った時に符号が変わってしまうため、経過時間がとんでもない値になってしまいます。つまり、start時点のtimeGetTime()の戻り値が0x7FFFFFFFで、経過後の戻り値が0x80000000だったら、ということです。 > 内部ではDWORDのまま保持しておいて、DWORDのまま差分を取ってからdoubleに変換すべきだと思います。
Wiki文法は使えません
ログインしていません。投稿を区別するために投稿者のニックネームをつけてください(ニックネームの一意性は保証されません。全く別の人も同じ名前を利用することが可能ですので本人であることの特定には利用できません。本人であることを保証したい場合にはログインして投稿を行なってください)。
ログインする
ニックネーム
プレビュー
投稿
キャンセル