为什么我在控制台下用settimeevent调用多媒体定时器总编译出错呢?
请各位大侠帮帮忙吧,我需要精确到毫秒的定时,所以选在了多媒体定时器,而且希望运行在控制台程序中。
#include <float.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <Windows.h>
#include <iostream>
using namespace std;
#include <MMSystem.h>
#pragma comment(lib, "winmm.lib")
#define TEN_MILLI_SECOND 50; //定时器间隔
#define TIMER_ACCURACY 1; //定时器精度
UINT Timer_ID; //定时器句柄
UINT wAccuracy; //定时器精度参数
TIMECAPS tc;
void CALLBACK count(UINT Timer_ID,UINT nMsg,DWORD dwUser,DWORD dw1,DWORD dw2)
{
printf("我爱你%d\n");
}
int main()
{
if(timeGetDevCaps(&tc,sizeof(TIMECAPS))==TIMERR_NOERROR) 这里就出错了
{
wAccuracy=min(max(tc.wPeriodMin,TIMER_ACCURACY),tc.wPeriodMax); //判断分辨率是否在允许范围
timeBeginPeriod(wAccuracy); //设置定时器分辨率
}
Timer_ID=timeSetEvent(TEN_MILLI_SECOND,wAccuracy,count,NULL,TIME_PERIODIC); 这里也出错 说少参数
}
[解决办法]
#define TEN_MILLI_SECOND 50; //定时器间隔
#define TIMER_ACCURACY 1; //定时器精度
#define语句的后面不要加分号。