掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
GettickCountでOver Flowのエラー (ID:38780)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> Time2がマイナスとなってしまう場合Time2の値は0になるのではないでしょうか? 0にはなりません。実行時エラーか、でなければDWORDにキャストした値(たとえば-1→4294967295)になります。 オーバーフローエラーが出るような状態だと、修正後のコードでも 実際にGetTickCountが巻き戻ったらエラーになりますね。 こんな風になっていないといけないのでは? NowTime := GetTickCount; if NowTime < STime then begin Time1 := 4294967295 - STime; Result := NowTime + Time1 + 1; // 4294967295msと0msの間は1ms end else Result := NowTime - STime; 最初のコードでエラーが出て2番目で消えるというのは説明が付けにくいですね。 (エラーが出たのが2つ目や3つ目のGetTickCountの場所なら、その間にカウント値が変わったからだという解釈もできそうですが) コードを試している間に、オーバーフローチェックの設定を変えたという可能性はないでしょうか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.