|
보통의 타이머는 Tick이 0.58(가물가물 -_-+) 정도기 때문에, 정확한 시간을 체크하기 어렵습니다. 타이머가 1/1000 초로 Interval을 잡을 수 있다고 해도 실제로 정확한 연산이 나오지 않죠. 하지만 윈도우 미디어 플레이어가 사용하는 DLL을 이용하면 1/1000초의 정확한 계산을 할 수 있습니다. 이것이 바로 멀티미디어 타이머고요, 지금은 API화 되어 있습니다.
int A = timeGetTime();
이런식으로 호출하시면, A에 현재의 시간이 밀리세컨드까지 정수화 되어 표기 됩니다. 이 말씀은 1000 단위가 1초가 된다는 뜻입니다. 보통의 Sleep 명령은 Sleep(7) 이런식으로 지연시킬 수 없습니다. 그렇기 때문에 아래와 같은 루틴을 사용하는 것이죠.
사용 방법은 ..
#include <mmsystem.h>
을 추가시켜 주시면 일반 함수처럼 사용하실 수 있습니다. mmsystem.h 에는 timeSetEvent 라는 함수도 포함이 되어있는데, 이 함수를 이용하시면 1/1000초라는 Interval을 가질 수 있는 타이머를 만드실 수 있습니다.
권혁준 님이 쓰신 글 :
: 그렇군요...
: 그래서 그냥 가져다가 쓴거군요....
: 그럼 while((timeGetTime()-TimeTest) < 7); 부분은
: 0.007초 동안 딜레이를 준다는 뜻인가보네여....
: 맞나....암튼 감사합니다..
: 또다른 질문도 좀....꾸벅...
:
:
:
:
: 지나가는 사람 님이 쓰신 글 :
: : 멀티미디어 타이머는 컴포넌트가 아니라 API입니다.
: :
: : 물론 찾아보면.. 멀티미디어 타이머를 이용해서 만들어 공개한 컴포넌트가 있긴할겁니다.
: :
: : 이 멀티미디어 타이머를 쓰는 것은 좀 어렵습니다.
: :
: : 일단 API 사용법, CallBack 함수에 대한 이해, 메세지 처리등을 알고 계셔야 합니다.
: :
: : 마땅히 참고할 만한 예제는 본적이 없구요..
: : 저는 그냥 API책에 있는 예제를 참고해서 컴포넌트를 만들어 보긴 했었는데..
: :
: :
: : 권혁준 님이 쓰신 글 :
: : : 안녕하세요..
: : : 아래와 같은 소스에서요...
: : : timeGetTime()함수에 대해 알려 하는데요...
: : :
: : : TimeTest = timeGetTime();
: : : while((timeGetTime()-TimeTest) < 7);
: : :
: : : 검색해보니..멀티미디어 타이머에 있는 함수라고 하는데...
: : : 멀티미디어 타이머는 컴포넌트인가요?....(왕초보임)
: : : 저 함수가 나오는 폼에는 라벨과 타이머와 프로그래스바 밖에 없는데...
: : : 저 함수를 어떻게 사용할 수 있는 건가요?..
: : :
: : : 황사조심 하세요....-_-;
: : :
: : :
|