在编写一些游戏程序时,常常需要高精度计时,普通的计时分辨率已经满足不了要求。那么,这该如何是好呢?下面,我们就以用 VS2013 中编写一个高精度计时程序为例,来教大家具体的方法。
工具/原料
VS2013
一、函数简介
1
要进行高精度计时,需要用到两个函数:QueryPerformanceFrequencyQueryPerformanceCounter要使用这两个函数,需要包含头文件Winbase.h ( 包含于 Windows.h 中)。
3
QueryPerformanceCounter 函数的说明如图所示。
4
这两个函数均需要用到一个 LARGE_INTEGER 结构,该结构的介绍如图所示。
二、用法
利用以上两个函数获得精确计时的方法如图所示。
三、示例
1
现在,我们利用以上函数对系统中的 Sleep 函数的精确度作一下考量,测试一下 Sleep(1000) 的误差范围大概是多大。
2
在程序中,定义三个 LARGE_INTEGER 结构变量,分别用它们来获取时钟分辨率、开始和结束计时,最后在屏幕上输出结果。
3
以下是运行结果截图。可以看出,Sleep函数的精确度相对而言还是比较差的。
注意事项
要使用QueryPerformanceFrequency、QueryPerformanceCounter函数,需要包含相应头文件。
下一篇:WOW拯救痒痒怎么做