<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    QueryPerformanceFrequency 和 QueryPerformanceCounter用法

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    QueryPerformanceFrequency() - 基本介紹

    類型:Win32API

    原型:BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);

    作用:返回硬件支持的高精度計數器的頻率。

    返回值:非零,硬件支持高精度計數器;零,硬件不支持,讀取失敗。

    QueryPerformanceFrequency() - 技術特點

    供WIN9X使用的高精度定時器:QueryPerformanceFrequency()和QueryPerformanceCounter(),要求計算機從硬件上支持高精度定時器。

    函數的原形是:
      BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);
      BOOL QueryPerformanceCounter (LARGE_INTEGER *lpCount);

    數據類型LARGEINTEGER既可以是一個作為8字節長的整數,也可以是作為兩個4字節長的整數的聯合結構,其具體用法根據編譯器是否支持64位而定。該類型的定義如下:
      typeef union _ LARGE_INTEGER
      {
       struct
       {
       DWORD LowPart;
       LONG HighPart;
       };
       LONGLONG QuadPart;
      } LARGE_INTEGER;

    在定時前應該先調用QueryPerformanceFrequency()函數獲得機器內部計時器的時鐘頻率。接著在需要嚴格計時的事件發生前和發生之后分別調用QueryPerformanceCounter(),利用兩次獲得的計數之差和時鐘頻率,就可以計算出事件經歷的精確時間。測試函數SLEEP(100)的精確持續時間方法:
      LARGE_INTEGER litmp;
      LONGLONG qt1,qt2;
      double dft,dff,dfm;
      QueryPerformanceFrequency(&litmp);//獲得時鐘頻率
      dff=(double)litmp.QuadPart;
      QueryPerformanceCounter(&litmp);//獲得初始值
      qt1=litmp.QuadPart;Sleep(100);
      QueryPerformanceCounter(&litmp);//獲得終止值
      qt2=litmp.QuadPart;
      dfm=(double)(qt2-qt1);
      dft=dfm/dff;//獲得對應的時間值

    需要注意的是DFT計算的結果單位是秒。

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全