首页
社区
课程
招聘
[求助]关于C++程序获得物理内存大小的问题
发表于: 2017-5-23 00:23 3374

[求助]关于C++程序获得物理内存大小的问题

2017-5-23 00:23
3374

各位大大,我在win32程序中通过GlobalMemoryStatusEx获得 ullTotalPhys,然后发现总是不会大于4096M。

那么问题来了,如果我的系统的物理内存大于4G,然后想在C++程序中获得物理内存的大小,有什么办法没?

程序时win32 的。



[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 878
活跃值: (496)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2

  DWORDLONG是uint64_t

2017-5-23 01:04
0
雪    币: 60
活跃值: (257)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3

下图

2017-5-23 09:40
0
雪    币: 60
活跃值: (257)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

2017-5-23 09:41
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
rrrfff   DWORDLONG是uint64_t
谢谢!是呀,我看到了咯,就是我用了
MEMORYSTATUSEX  mem;
mem.dwLength=sizeof(mem);
GlobalMemoryStatusEx(&mem);
wsprintf(infoMemorySize,"%dMB",mem.ullTotalPhys/1024/1024+1);
这样的代码,然后infoMemorySize是char[32].是这个的问题吗?
2017-5-23 13:06
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
Flygend
谢谢,我的和你这个有点类似,但是怎么就是16G的内存,只能得到4096M呢?难道是除法的问题吗?
我的代码片段是:
MEMORYSTATUSEX  mem;
mem.dwLength=sizeof(mem);
GlobalMemoryStatusEx(&mem);
wsprintf(infoMemorySize,"%dMB",mem.ullTotalPhys/1024/1024+1);
其中infoMemorySize是char[32].是除以1024的问题还是什么问题呀?
2017-5-23 13:08
0
游客
登录 | 注册 方可回帖
返回
//