在
Windows 7上使用Delphi 2010安装超过4 GB的内存时,有没有办法获得Total和Available内存?
此代码的返回值不超过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 ) + ')';
解决方法
您需要使用
GlobalMemoryStatusEx. GlobalMemoryStatus限制为4gb
我不知道它是否已经在Delphi中定义了它的结构TMemoryStatusEx(它将基于Windows API的MEMORYSTATUSEX.)
您需要查看的字段是ullTotalPhys和ullAvailPhys.它们是64位无符号整数.
我忘记了,它只受Windows> = 2000支持,但这不应该是一个问题了.