複製鏈接
請複製以下鏈接發送給好友

GetProcessMemoryInfo

鎖定
GetProcessMemoryInfo是一個Windows API函數,用於獲取內存的使用情況。
外文名
GetProcessMemoryInfo
用    途
獲取內存的使用情況
返回值
BOOL

GetProcessMemoryInfo函數介紹

當大家打開Windows任務管理器時,就會看到每個進程使用內存的分佈情況,往往會發現有一些進程佔用大量的內存,在這種情況也是一種異常情況,可以作為是否惡意軟件的標誌之一。下面就來使用API函數GetProcessMemoryInfo來獲取內存的使用情況。

GetProcessMemoryInfo函數聲明

BOOLWINAPIGetProcessMemoryInfo(
HANDLE Process,
PPROCESS_MEMORY_COUNTERS ppsmemCounters,
DWORD cb
);

GetProcessMemoryInfo參數説明

Process是獲取內存使用情況的進程句柄。
ppsmemCounters是返回內存使用情況的結構。
cb是結構的大小。 [1] 

GetProcessMemoryInfo調用步驟

使用函數GetProcessMemoryInfo獲取程序當前內存使用量的步驟如下:
1.在程序中添加pragma comment(lib,"Psapi.lib"),將Psapi.lib包含進去,或者通過在工程的屬性中添加Psapi.lib;
2.在系統中包含Psapi.h文件;
3.在需要查看內存的代碼處添加如下代碼:
HANDLE handle = GetCurrentProcess();
PROCESS_MEMORY_COUNTERS pmc;
GetProcessMemoryInfo(handle, &pmc, sizeof(pmc));
printf("%d\r\n",pmc.WorkingSetSize);
其中pmc.WorkingSetSize就是程序在當前代碼處的內存使用量。
參考資料