//ElapsedTime.h
#ifndef _ELAPSED
#define _ELAPSED
class CElapsed
{
private:
int Initialized;
_int64 Frequency;
_int64 BeginTime;
public:
CElapsed();
bool Begin();
double End(); //停止计数
bool Available();//是否可调用这两个函数
_int64 GetFreq();
};
#endif
//ElapsedTime.cpp
//另外gettickcount()这个函数也是可以精确到ms的
#include <stdafx.h>
#include "ElapsedTime.h"
CElapsed::CElapsed()
{
Initialized=QueryPerformanceFrequency((LARGE_INTEGER *)&Frequency);
}
bool CElapsed:: Begin()
{
if(!Initialized)
return 0; //某些CPU不运行此函数调用
return QueryPerformanceCounter((LARGE_INTEGER *)&BeginTime);
}
double CElapsed::End() //停止计数
{
if(!Initialized)
return 0.0; //某些CPU不运行此函数调用
_int64 endtime;
QueryPerformanceCounter((LARGE_INTEGER *)&endtime);
_int64 elapsed=endtime-BeginTime;
return (double)elapsed/(double)Frequency;
}
bool CElapsed::Available()//是否可调用这两个函数
{
return Initialized;
}
_int64 CElapsed::GetFreq()
{
return Frequency;
}