2009-03-19 2 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), 그리고 같은

0

많은 API는 또한 OpenGL을 (http://opengl.org)는 타이머 또는 타이머 래퍼를 구현 생각합니다.

"라이브러리 기능을 사용하지 않고"라고 말하면 다소 모호합니다. 특히 어떤 라이브러리를 의미합니까? 결국, C++에는 핵심 언어에서 타이밍 기능이 없으므로 일부 라이브러리 함수 또는 인라인 어셈블리를 사용해야합니다. 타이머 프로세서 나 다른 타이밍 하드웨어가 없어도 (*) 어떤 형태로든 시간을 말할 수있는 방법이 없습니다.

(*) 인터넷 시간 제공 업체가 포함됩니다.

+0

표준 C 라이브러리 함수 또는 Windows API를 사용하지 않습니다. – sarat

0

인터넷 시간 서비스에서 원자 시계를 얻습니다.

당신은 BIOS와 대화 할 수있는 일종의 라이브러리 기능을 다룰 것입니다.이 기능은 Quartz에서 OS로 눈에 띄는 부분입니다.

관련 문제