我试图通过以下示例在Windows XP(以及最终的Server 2008)上使VS2008上运行这个准确的计时器:
http://technology.chtsai.org/w98timer/
但是我收到以下错误:
有人可以建议吗?
我只想在Windows上使用简单,准确,毫秒级的C ++示例。
#include <stdio.h>
#include <windows.h>
#include <mmsystem.h>
#include "stdafx.h"
void
main (void)
{
TIMECAPS resolution;
DWORD start, finish, duration, i;
if (timeGetDevCaps (&resolution, sizeof (TIMECAPS)) == TIMERR_NOERROR)
{
printf ("Minimum supported resolution = %d\n", resolution.wPeriodMin);
printf ("Maximum supported resolution = %d\n", resolution.wPeriodMax);
}
if (resolution.wPeriodMin <= 1)
{
if (timeBeginPeriod (1) == TIMERR_NOERROR)
{
for (i = 100; i <= 120; i++)
{
start = timeGetTime ();
while (timeGetTime () < (start + i));
finish = timeGetTime ();
duration = finish - start;
printf ("expected:%d actual:%ld\n", i, duration);
}
timeEndPeriod (1);
}
}
}
答案 0 :(得分:2)
作为MSDN suggests,您需要在项目中加入winmm.lib
。因此,在源代码中的任何位置添加以下行:
#pragma comment(lib, "winmm.lib")
答案 1 :(得分:1)
查看docs,您需要将Winmm.lib
添加到要在项目属性中链接的其他库中。
答案 2 :(得分:1)
您需要将winmm.lib
添加到链接器依赖项。
答案 3 :(得分:1)
这些函数在winmm.dll中定义。您需要将winmm.lib添加到链接列表中。