windows程序设计 win32 API 获取系统内存信息 GlobalMemoryStatus 和 GlobalMemoryStatusEx
来源:互联网 发布:阿里云推广 产品 编辑:程序博客网 时间:2024/05/01 19:12
原文地址:http://www.cnblogs.com/llz5023/archive/2012/12/30/2839776.html
1、获取系统内存信息有2个api,分别是GlobalMemoryStatus和GlobalMemoryStatusEx
GlobalMemoryStatus函数可以在C语言咧直接调用,但是GlobalMemoryStatusEx却不可以直接调用
2、看看这2个函数的不同,总的来说这2个函数都可以获取到内存信息,但是GlobalMemoryStatusEx函数是GlobalMemoryStatus函数的增强,
GlobalMemoryStatus虽然可以获取,但当你的机器里装了2条内存条是,她只能获取到一条的内存信息容量,
而GlobalMemoryStatusEx函数却可以获取到所有,只要你系统识别的内存大小
3、看看2 个函数分别怎么用吧!
3.1、先看GlobalMemoryStatus函数,这个函数可以直接调用:
MEMORYSTATUS status//定义存放内存信息的变量
GlobalMemoryStatus(&status);//调用GlobalMemoryStatus函数获取内存信息
//对得到的内存信息处理现实处理
TCHAR ss[256];ZeroMemory(ss,sizeof(ss)/sizeof(TCHAR));wsprintf(ss,"%d KB",status.dwTotalPhys/1000);//现实内存大小MessageBox(hwndDlg,ss,TEXT(""),MB_OK);
3.2、GlobalMemoryStatusEx函数就没有那么容易调用了,它在C语言里不能直接调用,他被写在了系统的kernel32.dll动态链接库里面,所以我们要在C语言里调用系统的动态链接库DLL
直接上代码吧:
/*
*这里写了个调用kernel32.dll动态链接库里GlobalMemoryStatusEx函数的函数**/#include <windows.h>typedef void(WINAPI* FunctionGlobalMemoryStatusEx)(LPMEMORYSTATUS);//声明函数原型指针MEMORYSTATUS GetMemoryStatus(){HMODULE hModule;FunctionGlobalMemoryStatusEx GlobalMemoryStatusEx;MEMORYSTATUS status;status.dwLength = sizeof(status);
hModule = LoadLibrary("kernel32.dll");//载入动态链接库kernel32.dll,返回它的句柄if(NULL==hModule)//判断载入dll是否成功{//error.
//MessageBox(NULL,TEXT("载入动态链接库kernel32.dll"),TEXT("错误"),MB_OK|MB_ICONERROR);
return;
}//在kernel32.dll句柄里查找GlobalMemoryStatusEx函数,返回改函数的指针
GlobalMemoryStatusEx =(FunctionGlobalMemoryStatusEx)GetProcAddress(hModule,"GlobalMemoryStatusEx");
if(NULL==GlobalMemoryStatusEx)//判断函数是否找到{//error
//MessageBox(hwndDlg,TEXT("函数查找不到"),TEXT("错误"),MB_OK|MB_ICONERROR);
return;
}GlobalMemoryStatusEx(&status);//调用函数取得系统的内存情况
FreeLibrary(hModule);//释放链接库句柄
return status;
}
给下效果图吧,我的机器是4G内存,2跟2G的内存,由于装的是XP系统,所以只能识别3G内存:
GlobalMemoryStatus:
GlobalMemoryStatusEx:
0 0
- windows程序设计 win32 API 获取系统内存信息 GlobalMemoryStatus 和 GlobalMemoryStatusEx
- windows程序设计 win32 API 获取系统内存信息 GlobalMemoryStatus 和 GlobalMemoryStatusEx
- GlobalMemoryStatus 和 GlobalMemoryStatusEx
- GlobalMemoryStatusEx系统内存信息
- GlobalMemoryStatusEx系统内存信息
- 通过GlobalMemoryStatus函数获取当前虚拟内存和物理内存信息
- 获取内存使用信息(GlobalMemoryStatusEx)
- VisualC++利用CRegKey和WIN32 API获取系统硬件信息
- VisualC++利用CRegKey和WIN32 API获取系统硬件信息
- VisualC++利用CRegKey和WIN32 API获取系统硬件信息
- 利用Windows API函数和注册表获取系统信息
- WIN API-VFP获取系统内存信息
- 获取系统信息的有关Windows API
- windows API获取系统版本信息
- C/C++通过WMI和系统API函数获取获取系统硬件(cpu,内存,显卡,网卡)配置信息
- C/C++通过WMI和系统API函数获取获取系统硬件(cpu,内存,显卡,网卡)配置信息
- C/C++通过WMI和系统API函数获取获取系统硬件(cpu,内存,显卡,网卡)配置信息
- windows api 获取内存信息函数以及示例
- 161125
- HTML循环取JSON数组里面的数据,添加容错判断。
- 浅谈Struts2拦截器的原理与实现
- ajax视频拖拽上传
- 几年的放纵,换来的可能就是一生的卑微和坎坷。
- windows程序设计 win32 API 获取系统内存信息 GlobalMemoryStatus 和 GlobalMemoryStatusEx
- J2SE第六章——常用类(三)包装类
- xyz
- C++友元详解
- 关于3D-HEVC中的Single Depth Intra Mode以及Depth Intra Skip Mode
- All in All(字符串)
- mysql Commands out of sync
- mysql-mha架构
- 剑指offer习题---二维数组中的查找