我的代码:
#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);
}
我有这个错误:
英文翻译:
程序中的访问点PdhAddEnglishCounterA在库DLL pdh.dll中找不到。
如果我使用PdhAddCounter
代替PdhAddEnglishCounter
,我会在Status
:0xC0000BC0 (PDH_CSTATUS_BAD_COUNTERNAME)
中看到。我需要做些什么?
P.S。我在Windows XP上使用Visual Studio 2010。
答案 0 :(得分:2)
您的错误原因as MSDN says是Windows XP不支持PdhAddEnglishCounter
对于PdhAddCounter
,计数器路径必须正确本地化。 Refer to MSDN here。您可能希望将PdhLookupPerfNameByIndex
视为替代方案(同样,MSDN here)。
也有一个有用的article on the MS Knowledgebase。