我试图计算使用pdh.h的windoes 2008服务器上的进程数。

    CONST PWSTR COUNTER_PATH = L"\\System\\Processes";
    HQUERY hQuery = NULL;
    HCOUNTER hCounter;
    PDH_STATUS pdhStatus = ERROR_SUCCESS;

    pdhStatus = PdhOpenQuery(NULL, 0, &hQuery);
    pdhStatus = PdhAddCounter(hQuery, (LPCSTR)COUNTER_PATH, 0, &hCounter);

我从here获得了COUNTER_PATH名称,该示例可以在here中找到。但是不知何故,我在PdhAddCounter上收到0xC0000BC0 (PDH_CSTATUS_BAD_COUNTERNAME)错误消息。有人能拾起我犯的任何错误吗?我不确定我在这里缺少什么。 COUNTER_PATH有什么问题吗?

最佳答案

您正在将COUNTER_PATH强制转换为LPCSTR中的PdhAddCounter,而不应该这样做。
PdhAddCounter的第二个参数是LPCTSTR,与CONST PWSTR相同。

关于c++ - 错误的计数器路径,pdhAddCounter; Windows中的性能监视器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10706248/

10-15 05:10