Ошибка с использованием PdhAddEnglishCounter

Мой код:

#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я вижу в Status: 0xC0000BC0 (PDH_CSTATUS_BAD_COUNTERNAME), Что мне с этим делать?

постскриптум Я использую Visual Studio 2010 на Windows XP.

2

Решение

Причина вашей ошибки, как говорит MSDN в том, что PdhAddEnglishCounter не поддерживается в Windows XP

введите описание изображения здесь

За PdhAddCounter, путь счетчика должен быть правильно локализован. Обратитесь к MSDN здесь. Вы можете рассмотреть PdhLookupPerfNameByIndex в качестве альтернативы (опять же, MSDN здесь).

Есть полезное статья на базе знаний MS тоже.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]