这里还是聊的是 Windows多媒体定时器。 之前做的那个。感觉哪儿不对劲儿: 头文件封装没有做好, 回调函数没有写好。
今天,看了一个已经投入使用 的定时器(用示波器测试过,精确到1ms)。废话不多多说了。上代码:
------------------------- 我是分割线 ------------------------------------------------------
timer.h
//
// //
// Timer.h: interface for the CTimer class. //
//
//
//多媒体计时器,用于最低间隔至5ms,误差不大于1ms的高精度计时
//CPU占用极低,可忽略不计
#if !defined(AFX_TIMER_H__263E5861_FE82_11D3_A4A2_5A5A5A5A5A5A__INCLUDED_)
#define AFX_TIMER_H__263E5861_FE82_11D3_A4A2_5A5A5A5A5A5A__INCLUDED_
#if _MSC_VER >= 1000
#pragma once
#endif // _MSC_VER >= 1000
typedef BOOL (*TIMERCALLBACK)(DWORD);
class CTimer
{
public:
CTimer();
virtual ~CTimer();
BOOL Create (UINT nPeriod, UINT nRes, DWORD dwUser, TIMERCALLBACK pfnCallback);
protected:
static void CALLBACK TimeProc