// vector.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib,"Winmm.lib")
using namespace std;
#define TARGET_RESOLUTION 1 // 1-millisecond target resolution
void CALLBACK OneShotTimer(UINT wTimerID, UINT msg, DWORD dwUser, DWORD dw1, DWORD dw2)
{
//AfxMessageBox(_T("CALLBACK Success!"));
static DWORD t1=::GetTickCount();
DWORD t2=::GetTickCount();
cout<<t2-t1<<endl;
t1=t2;
}
int main(int argc,TCHAR *argv[])
{
TIMECAPS tc;
if (timeGetDevCaps(&tc, sizeof(TIMECAPS)) != TIMERR_NOERROR)
{
// Error; application can't continue.
}
UINT wTimerRes = min(max(tc.wPeriodMin, TARGET_RESOLUTION), tc.wPeriodMax);
timeBeginPeriod(wTimerRes);
MMRESULT timeSetEventRslt = timeSetEvent(
2*1000, // delay
1, // resolution (global variable)
OneShotTimer, // callback function
wTimerRes, // user data
TIME_PERIODIC | TIME_CALLBACK_FUNCTION | TIME_KILL_SYNCHRONOUS ); // periodic call to callback func
if(timeSetEventRslt == NULL )
cout<<"TimeSetEvent fail. Maybe delay is not in the range of the minimum and maximum "<<endl;
getchar();
return 0;
}