vc 时间差的计算

(一)
DOWRD   dwBeginTime=GetTickCount();   返回开机以来,经历的毫秒数
  執行你的程序.  
  DOWRD   dwEndTime=GetTickCount();  
   
  (dwEndTime-dwBeginTime)/1000.就是你需要的
或者是

DWORD   dwStart   =   GetTickCount();  
   
  //   Stop   if   this   has   taken   too   long  
  if(   GetTickCount()   -   dwStart   >=   TIMELIMIT   )  
          Cancel();  

(二)
用CTimeSpan类来返回时间差

(三)
long   t1,t2;  
  t1=time(0);//得到自1970年到现在时间的秒数  
   
  你的程序  
   
  t2=time(0);//  
  long   a=t2-t1;//两数值相减即得到秒数

PS:当CE的窗口不响应双击,要编写一个双击的代码捕获双击,可以用时间差来捕获两次LBUTTONUP之间的时间差小于某一值来完成,还需确认两次点击的是否是同一地方。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在vc80中,要实现程序的微秒级别的sleep,可以使用Windows提供的Sleep函数来实现。Sleep函数可以让程序休眠一定的毫秒数。 由于Sleep函数的最小单位是毫秒,要实现微秒级别的sleep,可以将需要休眠的微秒数转换成对应的毫秒数。例如,如果需要休眠50微秒,可以将其转换成0.05毫秒。然后调用Sleep函数休眠这个毫秒数即可。 然而,Sleep函数的精确度是受限的,不能保证休眠精确到微秒级别。要实现更精确的休眠,可以使用高精度定时器来进行实现。vc80中可以使用QueryPerformanceFrequency函数获取计时器的频率,使用QueryPerformanceCounter函数获取当前时间,并计算出需要休眠的时间差。 首先,调用QueryPerformanceFrequency函数获取计时器的频率,保存在一个变量中。然后调用QueryPerformanceCounter函数获取当前时间,保存在另一个变量中。接下来,根据需要休眠的微秒数计算出对应的时间差。将这个时间差转换成以秒为单位的结果。然后将这个结果传入Sleep函数中进行休眠。 需要注意的是,使用高精度定时器进行休眠的方式可能会导致休眠时间不准确,因为其精确度还受到其他因素的影响,如系统负载。若要实现更高精度的休眠,可能需要使用其他更为复杂的方法。 ### 回答2: 在VC80中要实现微秒级别的程序休眠,可以使用Win32 API中的Sleep和timeBeginPeriod函数结合使用。 Sleep是一个简单的Win32函数,可以让当前线程休眠指定的时间。但是它的最小精度是毫秒级别,无法实现微秒级别的休眠。 而timeBeginPeriod函数可以设置系统定时器的最小精度。该函数的参数指定的是定时器精度,单位是毫秒。通过调用timeBeginPeriod(1)时,可以将系统定时器的最小精度设置为1毫秒,从而实现毫秒级别的Sleep。同样地,如果将系统定时器的最小精度设置为1微秒,那么通过Sleep就可以实现微秒级别的休眠。 具体代码如下: ```cpp #include <windows.h> int main() { timeBeginPeriod(1); // 设置系统定时器的最小精度为1毫秒 Sleep(1); // 休眠1毫秒,当然也可以是其他数值 timeBeginPeriod(1); // 设置系统定时器的最小精度为1微秒 Sleep(1); // 休眠1微秒,当然也可以是其他数值 timeEndPeriod(1); // 恢复系统定时器的精度为原来的值 return 0; } ``` 以上代码中,通过调用timeBeginPeriod(1)将系统定时器精度设置为1微秒,并通过Sleep(1)来实现微秒级别的休眠。需要注意的是,在结束程序前一定要调用timeEndPeriod(1)来恢复系统定时器的精度为原来的值,避免影响其他程序的正常运行。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值