#include<Windows.h>
#include<iostream>
using namespace std;
void main()
{
MEMORYSTATUS ms; //存储状态
LPVOID pVir;
LPVOID pMal;
GlobalMemoryStatus(&ms);
cout<<"分配存储前的存储状态"<<endl;
cout<<"存储状态长度"<<ms.dwLength<<"Bytes"<<endl;
cout<<"本地存储"<<ms.dwMemoryLoad<<"%"<<endl;
cout<<"全部物理存储"<<ms.dwTotalPhys/(1024*1024)<<"MB"<<endl;
cout<<"全部页文件"<<ms.dwTotalPageFile/(1024*1024)<<"MB"<<endl;
cout<<"可用页文件"<<ms.dwAvailPageFile/(1024*1024)<<"MB"<<endl;
cout<<"全部虚拟存储"<<ms.dwTotalVirtual/(1024*1024)<<"MB"<<endl;
cout<<"可用虚拟存储"<<ms.dwAvailVirtual/(1024*1024)<<"MB"<<endl;
cout<<"现在分配32M虚拟存储和16M物理存储"<<endl;
pVir=VirtualAlloc(NULL,1024*1024*32,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);
if(!pVir)
{
cout<<"虚拟存储分配失败"<<endl;
}
pMal=malloc(1024*1024*16);
GlobalMemoryStatus(&ms);
cout<<"分配存储后的存储状态"<<endl;
cout<<"存储状态长度"<<ms.dwLength<<"Bytes"<<endl;
cout<<"本地存储"<<ms.dwMemoryLoad<<"%"<<endl;
cout<<"全部物理存储"<<ms.dwTotalPhys/(1024*1024)<<"MB"<<endl;
cout<<"全部页文件"<<ms.dwTotalPageFile/(1024*1024)<<"MB"<<endl;
cout<<"可用页文件"<<ms.dwAvailPageFile/(1024*1024)<<"MB"<<endl;
cout<<"全部虚拟存储"<<ms.dwTotalVirtual/(1024*1024)<<"MB"<<endl;
cout<<"可用虚拟存储"<<ms.dwAvailVirtual/(1024*1024)<<"MB"<<endl;
cout<<"现在释放32M虚拟存储和16M物理存储"<<endl;
if(!VirtualFree(pVir,0,MEM_RELEASE))
{
cout<<"释放虚拟存储失败"<<endl;
}
free(pMal);
GlobalMemoryStatus(&ms);
cout<<"释放存储后的存储状态"<<endl;
cout<<"存储状态长度"<<ms.dwLength<<"Bytes"<<endl;
cout<<"本地存储"<<ms.dwMemoryLoad<<"%"<<endl;
cout<<"全部物理存储"<<ms.dwTotalPhys/(1024*1024)<<"MB"<<endl;
cout<<"全部页文件"<<ms.dwTotalPageFile/(1024*1024)<<"MB"<<endl;
cout<<"可用页文件"<<ms.dwAvailPageFile/(1024*1024)<<"MB"<<endl;
cout<<"全部虚拟存储"<<ms.dwTotalVirtual/(1024*1024)<<"MB"<<endl;
cout<<"可用虚拟存储"<<ms.dwAvailVirtual/(1024*1024)<<"MB"<<endl;
}