// Media Timer.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
#define ONE_MILLI_SECOND 10 // 定义1ms和2s时钟间隔, 以ms为单位 ;
#define TWO_SECOND 2000
#define TIMER_ACCURACY 1 // 定义时钟分辨率, 以ms为单位
UINT wAccuracy; // 定义分辨率
void WINAPI onTimeFunc(UINT wTimerID, UINT msg, DWORD dwUser, DWORD dwl, DWORD dw2);
int _tmain(int argc, _TCHAR* argv[])
{
MMRESULT timer_id;
int n = 0;
TIMECAPS tc;
// 利用函数timeGetDevCaps取出系统分辨率的取值范围, 如果无错则继续;
if (timeGetDevCaps(&tc, sizeof(TIMECAPS)) == TIMERR_NOERROR)
{
wAccuracy = min(max(tc.wPeriodMin, //分辨率的值不能超出系统的取值范围
TIMER_ACCURACY), tc.wPeriodMax);
// 调用timeBeginPeriod函数设置定时器的分辨率
timeBeginPeriod(wAccuracy);
// 设置定时器
timer_id = timeSetEvent(ONE_MILLI_SECOND, wAccuracy, (LPTIMECALLBACK)onTimeFunc, DWORD(1), TIME_PERIODIC);
if (NULL == timer_id)
{
printf(