Current Situation:
I'm looking to try and measure the current CPU utilisation of my system in Hertz.
I've had a look at this answer which addresses my question, however I cannot seem to make the code work.
This is my current code in main.cpp (from the answer):
#include <Pdh.h>
#include <PdhMsg.h>
#include <Windows.h>
static PDH_HQUERY cpuQuery;
static PDH_HCOUNTER cpuTotal;
void init()
{
    PDH_STATUS a = PdhOpenQuery(NULL, NULL, &cpuQuery);
    PDH_STATUS i = PdhAddCounter(cpuQuery, L"\\Processor(_Total)\\% Processor Time", NULL, &cpuTotal);
    PdhCollectQueryData(cpuQuery);
}
double getCurrentValue()
{
    init();
    PDH_FMT_COUNTERVALUE counterVal;
    PdhCollectQueryData(cpuQuery);
    PdhGetFormattedCounterValue(cpuTotal, PDH_FMT_DOUBLE, NULL, &counterVal);
    return counterVal.doubleValue;
}
int main()
{
    double CPUUsage = getCurrentValue();
}
The Problem:
The value returned from getCurrectValue() is zero.
Related Observations:
I have observed, that the values in a and i of type PDH_STATUS are both zero? I speculate that this could be related to my lack of a value in CPUUsage, although I'm not sure why the function wouldn't be returning properly into these values.
Additional information:
I haven't used PDH before.
 
     
     
     
    