timeGetTime 找不到標識符

timeGetTime 找不到

  • timeGetTime: identifier not found
  • timeGetTime 找不到標識符

引入庫和頭文件

#include <Windows.h>
//for timeGetTime
#pragma comment(lib, "winmm.lib")

依舊報錯

解決方法

  • 去掉WIN32_LEAN_AND_MEAN
//#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers
// Windows Header Files:
#include <windows.h>

Qt的pro文件

DEFINES += WIN32_LEAN_AND_MEAN  //去掉這個
DEFINES += _CRT_SECURE_NO_WARNINGS   //可以有
DEFINES +=  __STDC_LIMIT_MACROS    //可有

timeGetTime的精度是毫秒

#include "stdio.h"
#include "time.h"
#include "windows.h"
#pragma comment(lib,"winmm.lib")

int main()
{
#define TARGET_RESOLUTION 1         // 1-millisecond target resolution

TIMECAPS tc;
UINT     wTimerRes;

if (timeGetDevCaps(&tc, sizeof(TIMECAPS)) != TIMERR_NOERROR) 
{
    // Error; application can't continue.
}

wTimerRes = min(max(tc.wPeriodMin, TARGET_RESOLUTION), tc.wPeriodMax);
timeBeginPeriod(wTimerRes);

// Actually the above is not needed, since the following command alone works also,
// but maybe it's still better to use the above, who knows how Microsoft has
// designed Windows:
//
// timeBeginPeriod(1);

double t1,t2,tt;
for(int z=0;z<10;z++)
{
	t1=clock();
	t2=clock();
	while(t2<=t1)t2=clock();		// wait for smallest change (15ms on windows)
	tt=(t2-t1);
	printf("%17.8f %17.8f %17.8f\n",
		t1/(double)CLOCKS_PER_SEC,
		t2/(double)CLOCKS_PER_SEC,
		tt/(double)CLOCKS_PER_SEC);
}
printf("-------------------------------------------------------\n");
for(int z=0;z<10;z++)
{
	t1=GetTickCount();
	t2=GetTickCount();
	while(t2<=t1)t2=GetTickCount();	// wait for smallest change (15ms on windows)
	tt=(t2-t1);
	printf("%17.8f %17.8f %17.8f\n",
		t1/1000.0,
		t2/1000.0,
		tt/1000.0);
}
printf("-------------------------------------------------------\n");
for(int z=0;z<10;z++)
{
	t1=timeGetTime();
	t2=timeGetTime();
	while(t2<=t1)t2=timeGetTime();	// wait for smallest change (1ms on windows)
	tt=t2-t1;
	printf("%17.8f %17.8f %17.8f\n",
		t1/1000.0,
		t2/1000.0,
		tt/1000.0);
}
return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章