0

次の例から、この正確なタイマーをVS2008、Windows XP(および最終的にはServer 2008)で動作させようとしています。

http://technology.chtsai.org/w98timer/

ただし、次のエラーが発生します。

  • エラーLNK2019:未解決の外部シンボル_ imp _timeEndPeriod @ 4
  • エラーLNK2019:未解決の外部シンボル_ imp _timeGetTime @ 0
  • エラーLNK2019:未解決の外部シンボル_ imp _timeBeginPeriod @ 4
  • エラーLNK2019:未解決の外部シンボル_ imp _timeGetDevCaps @ 8

誰かアドバイスしてもらえますか?

WindowsでのC++の単純で正確なミリ秒のタイミングの例が必要です。

#include <stdio.h>
#include <windows.h>
#include <mmsystem.h>
#include "stdafx.h"

void 
main (void)
{
  TIMECAPS resolution;
  DWORD start, finish, duration, i;

  if (timeGetDevCaps (&resolution, sizeof (TIMECAPS)) == TIMERR_NOERROR)
    {
      printf ("Minimum supported resolution = %d\n", resolution.wPeriodMin);
      printf ("Maximum supported resolution = %d\n", resolution.wPeriodMax);
    }

  if (resolution.wPeriodMin <= 1)
    {
      if (timeBeginPeriod (1) == TIMERR_NOERROR)
    {
      for (i = 100; i <= 120; i++)
        {
          start = timeGetTime ();
          while (timeGetTime () < (start + i));
          finish = timeGetTime ();
          duration = finish - start;
          printf ("expected:%d  actual:%ld\n", i, duration);
        }
      timeEndPeriod (1);
    }
    }
}
4

4 に答える 4

2

MSDN が示唆しているようwinmm.libに、プロジェクトに含める必要があります。したがって、次の行をソース コードの任意の場所に追加します。

#pragma comment(lib, "winmm.lib")
于 2012-04-05T14:16:03.117 に答える
1

ドキュメントを見るとWinmm.lib、追加のライブラリに追加してプロジェクト プロパティにリンクする必要があるようです。

于 2012-04-05T14:15:05.940 に答える
1

winmm.libリンカーの依存関係に追加する必要があります。

于 2012-04-05T14:15:05.983 に答える
1

これらの関数は、winmm.dll で定義されています。リンク リストに winmm.lib を追加する必要があります。

于 2012-04-05T14:15:35.133 に答える