获取RAM系统大小
我想知道如何通过 C++(在 Windows 7 上)获取 RAM 的大小。
I would like to know how can I get the size of my RAM through C++ (on Windows 7).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我想知道如何通过 C++(在 Windows 7 上)获取 RAM 的大小。
I would like to know how can I get the size of my RAM through C++ (on Windows 7).
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(5)
使用
GetPhysicallyInstalledSystemMemory
检索计算机上物理安装的 RAM 量。(请注意,这需要 Windows Vista SP1 或更高版本。该功能在早期版本的 Windows 操作系统上不可用。)
MSDN 上的评论说:
这意味着,您还需要查看
GlobalMemoryStatusEx
。Use
GetPhysicallyInstalledSystemMemory
to retrieve the amount of RAM that is physically installed on the computer.(Note that this requires Windows Vista SP1 or later. The function is not available on earlier versions of the Windows operating system.)
The remarks on MSDN say:
That means, you would also want to look at
GlobalMemoryStatusEx
.好吧,伙计们!我通过这样做[大师模式打开]找到了解决方案:
我必须定义_WIN32_WINNT 0x0501,但我不知道为什么[大师模式关闭]。
如果有人可以向我解释它在做什么以及为什么没有它它就不起作用。
还有一件事,那是什么:
Okay, guys! I've found the solution by doing this like that [guru mode on]:
I had to define _WIN32_WINNT 0x0501, but i don't know why [guru mode is off].
If somebody could explain me what it is doing and why it doesn't work without it.
One more thing, what is that:
在 Windows 上:
在 Linux 上:
读取
/proc/meminfo
。On Windows:
On Linux:
Read
/proc/meminfo
.您想要使用
GlobalMemoryStatusEx< /code>
返回一个
MEMORYSTATUSEX
。您想要的字段称为ullTotalPhys
。You want to use the
GlobalMemoryStatusEx
which returns aMEMORYSTATUSEX
. The field you want is calledullTotalPhys
.0x501
是WindowsXP版本,即MEMORYSTATUSEX
结构不受某些旧Windows版本的支持。您的windef.h可能指向比0x5XX
更低的WINVER
。The
0x501
is the WindowsXP version, i.e. theMEMORYSTATUSEX
struct is not supported by some older Windows versions. Your windef.h probably points to a lowerWINVER
than0x5XX
.