C++でLARGE_INTEGER構造の問題を解決するにはどうすればよいでしょうか?
C++のLARGE_INTEGER構造体は、64ビットの符号付き整数を表す構造体であり、Windows.hヘッダファイルで定義されています。LARGE_INTEGER構造体を使用するには、Windows.hヘッダファイルをインクルードし、Kernel32.libライブラリにリンクする必要があります。
以下にLARGE_INTEGER構造体の使用方法のサンプルコードを示します。
#include <Windows.h>
#include <iostream>
int main()
{
LARGE_INTEGER li;
// 获取当前系统中的时间戳
QueryPerformanceCounter(&li);
std::cout << "Current timestamp: " << li.QuadPart << std::endl;
// 延时1秒钟
LARGE_INTEGER frequency;
QueryPerformanceFrequency(&frequency);
LARGE_INTEGER start, end;
QueryPerformanceCounter(&start);
do {
QueryPerformanceCounter(&end);
} while ((end.QuadPart - start.QuadPart) / frequency.QuadPart < 1);
// 输出延时后的时间戳
QueryPerformanceCounter(&li);
std::cout << "Delayed timestamp: " << li.QuadPart << std::endl;
return 0;
}
上記のサンプルコードでは、最初にQueryPerformanceCounter関数を使用して現在のシステムのタイムスタンプを取得し、コンソールに出力します。次に、QueryPerformanceFrequency関数を使いシステムクロックの周波数を取得し、待ち時間に利用します。最後に、QueryPerformanceCounter関数を使い待ち時間後のタイムスタンプを取得し、コンソールに出力します。
LARGE_INTEGER構造体のメンバQuadPartには、64ビット符号付き整数が入っていることに注意。他のメンバを使用して、必要に応じて構造体の値を操作できます。