1

QueryPerformanceCounter();ファイル名に含まれる一意のタイムスタンプとして使用する番号を取得するために使用しています。

LARGE_INTEGER performanceCount;
QueryPerformanceCounter(&performanceCount);

どちらがbase64 文字列の型で、どちらがperformanceCount.HighPart型であるかをエンコードする必要があります。次に、それらを連結して変数に格納します。LONGperformanceCount.LowPartDWORDwstring

どうすればこれを達成できますか?

4

1 に答える 1

1

filename で base64-chars を使用する際の問題を回避するには(この質問を参照)、base16 の制限された文字セットを使用する方がよいでしょう。32 ビット コンパイルでも、MS は LARGE_INTEGER の QuadPart メンバーをサポートしているため、それを使用しています。

編集:コメントの提案ごとに、これを行う主な方法は文字列ストリームを使用する必要があります:

#include <sstream>
#include <iomanip>

std::wstring LargeIntToString(const LARGE_INTEGER& li)
{
    std::wstringstream wss;
    wss << hex << setw(16) << setfill(L'0') << li.QuadPart;
    return wss.str();
}


int main()
{
    LARGE_INTEGER li;
    QueryPerformanceCounter(&li);

    wcout << LargeIntToString(li) << endl;
    return 0;
} 

出力(とにかく、自分のマシンで実行したとき)

00000041f40cdd33
于 2012-11-28T00:06:25.997 に答える