我正在尝试在Windows 7 32位上的C++应用程序中使用GetProcessMemoryInfo函数psapi.h

我遵循了一些教程,并且做了类似的事情:

PPROCESS_MEMORY_COUNTERS pMemCountr;

pMemCountr = new PROCESS_MEMORY_COUNTERS();
bool result = GetProcessMemoryInfo(GetCurrentProcess(),
                                   pMemCountr,
                                   sizeof(PPROCESS_MEMORY_COUNTERS));

问题是我总是从GetProcessMemoryInfo()方法的执行中获得“假”。我在这里做错了什么?

最佳答案

问题是

sizeof(PPROCESS_MEMORY_COUNTERS)

产生PPROCESS_MEMORY_COUNTERS的大小,它是PROCESS_MEMORY_COUNTERS*类型的指针(注意开头是double P)。

你想要的是
sizeof(PROCESS_MEMORY_COUNTERS)

另外,如果没有new,您也会变得更好:
PROCESS_MEMORY_COUNTERS memCounter;
BOOL result = GetProcessMemoryInfo(GetCurrentProcess(),
                                   &memCounter,
                                   sizeof( memCounter ));

10-08 11:29