安装> 4 GB时获取总内存和可用内存

Bil*_*ill 6 delphi

在Windows 7上使用Delphi 2010安装超过4 GB的内存时,有没有办法获得总内存和可用内存?

此代码的返回值不超过3.99 GB:

var
  Memory: TMemoryStatus;

Memory.dwLength := SizeOf( Memory );
GlobalMemoryStatus( Memory );
dwTotalPhys1.Caption := 'Total memory: ' + IntToStr( Memory.dwTotalPhys ) + ' Bytes ' + '(' + FormatByteSize
( Memory.dwTotalPhys ) + ')';
dwAvailPhys1.Caption := 'Available memory: ' + IntToStr( Memory.dwAvailPhys ) + ' Bytes ' + FormatByteSize
( Memory.dwAvailPhys ) + ')';
Run Code Online (Sandbox Code Playgroud)

xan*_*tos 15

您需要使用GlobalMemoryStatusEx.GlobalMemoryStatus仅限4gb

我不知道它是否已经在Delphi中定义了它的结构TMemoryStatusEx与否(它将基于Windows API 的MEMORYSTATUSEX.)

你必须要看的领域是ullTotalPhysullAvailPhys.它们是64位无符号整数.

我忘记了,它只受Windows> = 2000支持,但这不应该是一个问题了.