win 32Api获取系统内存函数
来源:互联网 发布:linux运维会被云取代吗 编辑:程序博客网 时间:2024/05/18 11:09
windows编程中 获取系统内存信息有2个api,分别是GlobalMemoryStatus和GlobalMemoryStatusEx,GlobalMemoryStatus函数可以在C语言咧直接调用,但是GlobalMemoryStatusEx却不可以直接调用,因为GlobalMemoryStatusEx被写在了系统的kernel32.dll动态链接库里面,所以我们在使用GlobalMemoryStatusEx要加载kernel32.dll库
2个函数的不同点:
总的来说这2个函数都可以获取到内存信息,但是GlobalMemoryStatusEx函数是GlobalMemoryStatus函数的增强,GlobalMemoryStatus虽然可以获取,但当你的机器里装了2条内存条是,她只能获取到一条的内存信息容量,而GlobalMemoryStatusEx函数却可以获取到所有,只要你系统识别的内存大小
1、GlobalMemoryStatus函数的用法:
引用头文件#include <windows.h>
MEMORYSTATUS CMemoryFunction::GetMemoryStatus(){MEMORYSTATUS status;//定义存放内存信息的变量GlobalMemoryStatus(&status);//调用GlobalMemoryStatus函数获取内存信息 SIZE_T phyPart = status.dwTotalPhys/1000/1000;std::cout<<"PartPhysMemory:"<<phyPart<<"M"<<std::endl;return status;}
2、GlobalMemoryStatusEx函数的用法:
typedef void(WINAPI* FunctionGlobalMemoryStatusEx)(LPMEMORYSTATUSEX);//声明函数原型指针MEMORYSTATUSEX CMemoryFunction::GetMemoryStatusEx(){HMODULE hModule;FunctionGlobalMemoryStatusEx GlobalMemoryStatusEx;MEMORYSTATUSEX status;status.dwLength = sizeof(status);LPCWSTR dllName = L"kernel32.dll";hModule = LoadLibrary(dllName);//载入动态链接库kernel32.dll,返回它的句柄if(NULL==hModule)//判断载入dll是否成功{return status;}//在kernel32.dll句柄里查找GlobalMemoryStatusEx函数,返回改函数的指针GlobalMemoryStatusEx =(FunctionGlobalMemoryStatusEx)GetProcAddress(hModule,"GlobalMemoryStatusEx");if(NULL==GlobalMemoryStatusEx)//判断函数是否找到{return status;}GlobalMemoryStatusEx(&status);//调用函数取得系统的内存情况FreeLibrary(hModule);//释放链接库句柄DWORDLONG phyAll = status.ullTotalPhys/1000/1000;std::cout<<"AllPhysMemory:"<<phyAll<<"M"<<std::endl;return status;}
本机运行结果
0 0
- win 32Api获取系统内存函数
- WIN API-VFP获取系统内存信息
- 关于cocos2dx如何通过win api 获取win系统屏幕尺寸
- 系统API函数获取系统时间
- C/C++通过WMI和系统API函数获取获取系统硬件(cpu,内存,显卡,网卡)配置信息
- C/C++通过WMI和系统API函数获取获取系统硬件(cpu,内存,显卡,网卡)配置信息
- C/C++通过WMI和系统API函数获取获取系统硬件(cpu,内存,显卡,网卡)配置信息
- 利用API函数获取系统信息
- 运用API函数获取系统信息
- 运用API函数获取系统信息
- 注册表API函数和获取系统版本
- Win API:注册表操作函数
- win api 路径操作函数
- WIN API函数名索引
- window系统内存获取函数【C++】
- WIN 32 串口API
- WIN-32 API
- 32位win系统,突破4G内存限制方法
- 异或算法在算法求解中的妙用
- Linux 下编译Android-VLC开源播放器详解(附源码下载)
- 数据链路层常见威胁与防御技术
- 第三周 项目 3 求合集并集(补)
- js 放大镜
- win 32Api获取系统内存函数
- 搭建Vagrant的Debian8的base box
- Android 读取SD卡中文件以及内存使用情况
- uva1343 IDA*
- 第二节:Halcon中的一维测量,测量开关针脚之间的距离
- Skyline遍历指定Group下的子节点、查找并创建节点
- 【php】关于if以及bool
- Codeforces 158B(贪心问题)
- 编译安装golang1.7及golang程序的交叉编译