32位操作系统

时间:2017-04-28 17:23:49

标签: c++ winapi ram windows-applications

我想使用GetPhysicallyInstalledSystemMemory函数检测内存,问题是,它只在64位操作系统上正确显示RAM。在32位操作系统上,我得到错误的值。例如,如下图所示:

在虚拟机上(Windows Vista SP2 x32):

enter image description here

代码:

ULONGLONG ramSize;
BOOL result = GetPhysicallyInstalledSystemMemory(&ramSize);

if (result == TRUE) {
    QString ramMB = QString::number(ramSize / (1024.0));
    QString ramGB = QString::number(ceil(ramSize / (1024.0 * 1024.0)));
    QMessageBox::information(this, "Test_MB", ramMB.append(" MB")); // RAM in MB
    QMessageBox::information(this, "Test_GB", ramGB.append(" GB")); // RAM in GB
}

为什么它不适用于32位操作系统?感谢。

1 个答案:

答案 0 :(得分:0)

我已安装Windows 7 x32并进行测试。现在价值是正确的。所以这个bug就是VMware Workstation。我稍后会向VMware报告。谢谢大家的帮助。