QueryPerformanceCounterをもうちょっと検証してみようの記事を書いてしばらくたちましたが、ちょっと思ったことがありました。
QueryPerformanceCounterが正しい結果を返すことができない条件ってどういうもの何だろうか?
Microsoftに問い合わせるか、MSDNあたりに物事を書いてみればわかるのかもしれませんが・・・。
検証用のプログラムをUpしてみました。
上記の記事で記述してあるコードでビルドしたものです。最後が
#ifdef _USE_TIMECAPS_ timeEndPeriod(timeCaps.wPeriodMin); #endif getchar(); return 0; }
としてあるので、プロンプトでEnterキーを押して終了になります。
というのも、上記の記事を参考にしている記事で、ちょっと意味の取り方をかえた(か、翻訳で意味が変わった?)ものがあり、
特定のOSでQueryPerformanceCounterを使うと正しい結果になる、という書き方になっています。
正しく書くと間違って検索に結果が表示されてしまうので詳しくは書きませんが・・・。
おそらく依存条件は
- CPU
- マザーボード(型番)
- OS (WinXP,WinVista,Win7[x86/x64],etc)
だと思うのですが・・・。
テストしてくださった方はコメントに結果を簡単に書き残していただければ、とおもいます。