2

私のコード:

#include <Windows.h>
#include <iostream>
#include <Pdh.h>
#pragma comment (lib, "pdh.lib")
void main()
{
    PDH_STATUS Status;
    HQUERY Query = NULL;
    HCOUNTER Counter;
    WCHAR buffer[PDH_MAX_COUNTER_PATH];
    PdhOpenQuery(NULL, NULL, &Query);
    wcscpy(buffer, L"\\NTO-PROG\Thread(_Total/_Total)\Context Switches/sec");
    Status = PdhAddEnglishCounter(Query, buffer, 0, &Counter);
}

このエラーがあります:

pdhエラー

英語翻訳:

プロシージャ PdhAddEnglishCounterA のアクセス ポイントがライブラリ DLL pdh.dll に見つかりません。

PdhAddCounterの代わりに使用している場合はPdhAddEnglishCounter、 in : が表示されStatusます0xC0000BC0 (PDH_CSTATUS_BAD_COUNTERNAME)。これで何をする必要がありますか?

ps Windows XP で Visual Studio 2010 を使用しています。

4

1 に答える 1

3

エラーの理由は、MSDN が言うようPdhAddEnglishCounterに、Windows XP ではサポートされていないためです。

ここに画像の説明を入力

の場合PdhAddCounter、カウンター パスを正しくローカライズする必要があります。ここで MSDN を参照してください。別の方法として検討することをお勧めしますPdhLookupPerfNameByIndex(ここでも、MSDN here )。

MS Knowledgebase にも役立つ記事があります。

于 2013-07-18T11:38:22.803 に答える