如何在c++中使用GetProcessMemoryInfo
How to use GetProcessMemoryInfo in C++?
本文关键字:GetProcessMemoryInfo c++ 更新时间:2023-10-16
我试图在Windows 7 32位的c++应用程序中使用psapi.h
的GetProcessMemoryInfo
函数。
我按照一些教程做了如下操作:
PPROCESS_MEMORY_COUNTERS pMemCountr;
pMemCountr = new PROCESS_MEMORY_COUNTERS();
bool result = GetProcessMemoryInfo(GetCurrentProcess(),
pMemCountr,
sizeof(PPROCESS_MEMORY_COUNTERS));
问题是我总是从GetProcessMemoryInfo()
方法的执行中获得"false"。我哪里做错了?
问题是
sizeof(PPROCESS_MEMORY_COUNTERS)
得到PPROCESS_MEMORY_COUNTERS
的大小,它是一个PROCESS_MEMORY_COUNTERS*
类型的指针(注意开头是双P
)。
你想要的是
sizeof(PROCESS_MEMORY_COUNTERS)
如果没有new
,你会过得更好:
PROCESS_MEMORY_COUNTERS memCounter;
BOOL result = GetProcessMemoryInfo(GetCurrentProcess(),
&memCounter,
sizeof( memCounter ));
change sizeof(PPROCESS_MEMORY_COUNTERS) to sizeof(PROCESS_MEMORY_COUNTERS)
On MSDN:
BOOL WINAPI GetProcessMemoryInfo(在 HANDLE进程中,Out PPROCESS_MEMORY_COUNTERSIn DWORD
);的例子:
HANDLE hProcess;
PROCESS_MEMORY_COUNTERS pmc;
printf( "nProcess ID: %un", processID );
// Print information about the memory usage of the process.
hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID );
if (NULL == hProcess)
return;
if (GetProcessMemoryInfo( ( hProcess, &pmc, sizeof(pmc)))
{
printf( "tWorkingSetSize: 0x%08X - %un", pmc.WorkingSetSize,
pmc.WorkingSetSize / 1024);
printf( "tQuotaPeakPagedPoolUsage: 0x%08X - %un",
pmc.QuotaPeakPagedPoolUsage , pmc.QuotaPeakPagedPoolUsage / 1024);
printf( "tQuotaPagedPoolUsage: 0x%08X - %un", pmc.QuotaPagedPoolUsage,
pmc.QuotaPagedPoolUsage / 1024);
printf( "tQuotaPeakNonPagedPoolUsage: 0x%08X - %un",
pmc.QuotaPeakNonPagedPoolUsage,pmc.QuotaPeakNonPagedPoolUsage / 1024 );
printf( "tQuotaNonPagedPoolUsage:0x%08X-%un",pmc.QuotaNonPagedPoolUsage , pmc.QuotaNonPagedPoolUsage / 1024);
printf( "tPagefileUsage: 0x%08X - %un", pmc.PagefileUsage, pmc.PagefileUsage/1024 );
printf( "tPeakPagefileUsage: 0x%08X - %un", pmc.PeakPagefileUsage, pmc.PeakPagefileUsage/1024 );
printf( "tcb: 0x%08X - %un", pmc.cb , pmc.cb / 1024);
}
CloseHandle(hProcess);
或者你可以从这里查看完整的代码
相关文章:
- 没有找到相关文章