トップページ > 過去ログ > 記事閲覧
GetNowCountの最大値について
名前:Foo 日時: 2007/06/16 20:52

久しぶりに質問に参りました。 GetNowCountについてです。 この関数はint型でWindows起動後のmsを返す仕様ですが、signed intの範囲を超えた場合、本家DirectXの関数同様、0に戻るのでしょうか。 よろしくお願いいたします。

Page: 1 |

Re: GetNowCountの最大値について ( No.1 )
名前:管理人 日時:2007/06/17 06:50

Fooさんどうも、DXライブラリの管理人です。 DirectXのタイムを取得するAPIのことは知りませんが、お察しの通り signed int の範囲(4バイトで表現できる数値の範囲)を超えると 0 に戻ります。 ただ、本当は GetNowCount の戻り値は unsigned int ですので、 申し訳ありませんが unsigned int にキャストして扱うようにして下さい。 ちなみに unsigned int で表現できる値を超えてカウントが0に戻るのは、OSが 起動してから49日間毎となります。(unsigned int ではなく、signed int として扱うと、 24日後に値がマイナスになります(更に24日後に0に戻ります))
Re: GetNowCountの最大値について ( No.2 )
名前:Foo 日時:2007/06/17 13:47

ご回答ありがとうございます。 しかしながら、すみません。 >ただ、本当は GetNowCount の戻り値は unsigned int ですので、申し訳ありませんが unsigned int にキャストして扱うようにして下さい。 の部分がちょっとよくわかりません。 GetNowCountの戻り値はリファレンスにはintと書いているけど実はunsigned intだ、という意味でしょうか。 signed で範囲を超えると0に戻る・・・ということは、マイナス値へは行かないのですね。 だとするとそれをunsigned intでキャストしても signedの範囲内の値になってしまうと思うのですが。 申し訳ありません。 なにか自分が思い違いをしているようです。 が、どこが間違ってるのか、そこがわかりません。 よろしければ補足説明をお願いいたします。 ※できますればGetNowCountの仕様について今一度、  お願いいたします。 P.S. ちなみに。自分は欲しいのは 「unsigned intの戻り値を返し、unsigned int の範囲を超えると0を返す関数」です。 GetNowCountがそうだといいんですけど…。
Re: GetNowCountの最大値について ( No.3 )
名前:管理人 日時:2007/06/20 10:47

Fooさんどうも、DXライブラリの管理人です。 すみません、説明に不備がありました。 > GetNowCountの戻り値はリファレンスにはintと書いているけど実はunsigned intだ、という意味でしょうか。  はい、そうです。 > signed で範囲を超えると0に戻る・・・ということは、マイナス値へは行かないのですね。  すみません、unsigned int の範囲を超えると0に戻る、の誤りです。 > ※できますればGetNowCountの仕様について今一度、 >  お願いいたします。  戻り値は unsigned int 型で、OS起動時に0からカウントが始まり、 1ミリ秒経過する度にカウントが1進み、unsigned int 型の範囲を超えると 0に戻ります。 > 「unsigned intの戻り値を返し、unsigned int の範囲を超えると0を返す関数」です。  GetNowCount 関数はその通りの機能となっています。
Re: GetNowCountの最大値について ( No.4 )
名前:Foo 日時:2007/07/08 00:24

管理人様 御礼が遅れまして申し訳ございません。 なるほど了解いたしました。 ありがとうございました。

Page: 1 |