windows API获取物理内存大于4G的方法

来源:互联网 发布:改变系统字体大小软件 编辑:程序博客网 时间:2024/05/02 18:51
函数原型:
BOOL WINAPI GlobalMemoryStatusEx(_Inout_ LPMEMORYSTATUSEX lpBuffer);
调用dll Kernel32.dll
demo:
//  Sample output://  There is       51 percent of memory in use.//  There are 2029968 total KB of physical memory.//  There are  987388 free  KB of physical memory.//  There are 3884620 total KB of paging file.//  There are 2799776 free  KB of paging file.//  There are 2097024 total KB of virtual memory.//  There are 2084876 free  KB of virtual memory.//  There are       0 free  KB of extended memory.#include <windows.h>#include <stdio.h>#include <tchar.h>// Use to convert bytes to KB#define DIV 1024// Specify the width of the field in which to print the numbers. // The asterisk in the format specifier "%*I64d" takes an integer // argument and uses it to pad and right justify the number.#define WIDTH 7void _tmain(){  MEMORYSTATUSEX statex;  statex.dwLength = sizeof (statex);  GlobalMemoryStatusEx (&statex);  _tprintf (TEXT("There is  %*ld percent of memory in use.\n"),            WIDTH, statex.dwMemoryLoad);  _tprintf (TEXT("There are %*I64d total KB of physical memory.\n"),            WIDTH, statex.ullTotalPhys/DIV);  _tprintf (TEXT("There are %*I64d free  KB of physical memory.\n"),            WIDTH, statex.ullAvailPhys/DIV);  _tprintf (TEXT("There are %*I64d total KB of paging file.\n"),            WIDTH, statex.ullTotalPageFile/DIV);  _tprintf (TEXT("There are %*I64d free  KB of paging file.\n"),            WIDTH, statex.ullAvailPageFile/DIV);  _tprintf (TEXT("There are %*I64d total KB of virtual memory.\n"),            WIDTH, statex.ullTotalVirtual/DIV);  _tprintf (TEXT("There are %*I64d free  KB of virtual memory.\n"),            WIDTH, statex.ullAvailVirtual/DIV);  // Show the amount of extended memory available.  _tprintf (TEXT("There are %*I64d free  KB of extended memory.\n"),            WIDTH, statex.ullAvailExtendedVirtual/DIV);}

参考: https://msdn.microsoft.com/en-us/library/aa366589(v=vs.85).aspx
0 0
原创粉丝点击