timeGetTime()用法

在SDK中,可以用DWORD timeGetTime(VOID)函数获取系统时间,其返回值是毫秒单位的。可以用其实现延时功能的函数。

void Delay(DWORD delayTime)
{
DWORD delayTimeBegin;
DWORD delayTimeEnd;
delayTimeBegin=timeGetTime();
do
   {
     delayTimeEnd=timeGetTime();
   }while(delayTimeEnd-delayTimeBegin<delayTime)
}
注:在使用timeGetTime之前应先包含头文件#i nclude <Mmsystem.h>或#include <Windows.h>并在project->settings->link->Object/library modules中添加winmm.lib
也可以在文件头部添加 #pragma comment( lib,"winmm.lib" )
命令行:#pragma comment( lib,"xxx.lib" )时预编译处理指令,让vc将winmm.lib添加到工程中去进行编译。

  备注:该函数与timeGetSystemTime函数的唯一不同是timeGetSystemTime函数使用MMTIME结构返回系统时间。TimeGetSystemTime比timeGetTime需要更多的系统开销。注意timeGetTime函数是一个双字。这个值在0到2^32之间。大约49.71天。如果在代码中直接将该值用于计算,会导致一些问题,特别是用该值来控制代码的执行。一般利用两个timeGetTime函数返回值的不同来用于计算。

  Windows NT:该函数的时间精度是五毫秒或更大一些,这取决于机器的性能。可用timeBeginPeriod和timeEndPeriod函数提高timeGetTime函数的精度。如果使用了,连续调用timeGetTime函数,一系列返回值的差异由timeBeginPeriod和timeEndPeriod决定。QueryPerformanceCounter QueryPerformanceFrequency函数用于分辨率要求更高的时间测量。

  Windows95 默认分辨率是1毫秒,无论是否调用timeBeginPeriod和timeEndPeriod函数。

posted @ 2012-11-08 11:52  拿枪的程序员  阅读(15180)  评论(0编辑  收藏  举报