自己封闭的一个简单实用的用于精确计时的C++类

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

//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;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航