2009-03-19 10 views
2

ライブラリ機能を使用せずにWindowsで独自のタイマー機能を実装する方法は?アセンブリ言語命令を扱うべきでしょうか?Cでusermode timerを実装する方法は?

+0

はstdlibに含まれていませんか? – cobbal

+0

単一のライブラリ機能を使用しないでください。特定の機能を使用しないでください。私はあなたがlib呼び出しなしでシステム時間を得る方法を見ていない。 – Paxic

+0

私は簡単な時間をどのように実装できるかを知る必要があります。もちろん、プラットフォームAPIに頼ることは可能です。それをどのように実装することが可能なのでしょうか? – sarat

答えて

4

これは、必要な精度と解像度によって異なります。

秒精度以上が必要な場合は、RDTSC命令をラップ/使用するのが一般的です。しかし、Win32 APIを使用することもできます。QueryPerformanceCounter()は広く使用されています。インテルのスレッディング・ビルディング・ブロック(http://threadingbuildingblocks.org)、OpenMPの(http://openmp.org)、SDL(http://libsdl.org)またはSFML(http://sfml-dev.org)、およびIなどの

0

多くのAPIはOpenGLのも(http://opengl.org)はタイマーやタイマーのラッパーを実装すると思います。

「ライブラリ関数を使用しない」とは少し曖昧です。具体的にはどのライブラリですか? C++にはコア言語でタイミング機能がないため、最終的にはライブラリ関数またはインラインアセンブリを使用する必要があります。タイマープロセッサーやその他のタイミングハードウェアがなくても(*)、時間を正確に表現するのではなく、あいまいではありません。

(*)インターネット時間プロバイダが含まれます。

+0

標準のCライブラリ関数またはWindows APIを使用していない – sarat

0

インターネット時間サービスからの原子時計の時刻を取得します。

これ以外の場合は、BIOSと話すことができる何らかの種類のライブラリ機能を扱います。これは、QuartzからOSに目を通して見えるようにする部分です。

関連する問題