zoukankan      html  css  js  c++  java
  • delphi 获取大于2G的物理内存大小

    一般情况下,我们是用GlobalMemoryStatus 来获取物理内存大小的 但该API在物理内存大小超过2G的时候,返回值均为2GB。因此,没有办法获取真实的物理内存大小,所以需要对此进行改进。

    定义TMemoryStatusEx结构:

    [delphi] view plain copy
     
    1. Type  
    2.   TMemoryStatusEx = packed record  
    3.     dwLength: DWORD;  
    4.     dwMemoryLoad: DWORD;  
    5.     ullTotalPhys: Int64;  
    6.     ullAvailPhys: Int64;  
    7.     ullTotalPageFile: Int64;  
    8.     ullAvailPageFile: Int64;  
    9.     ullTotalVirtual: Int64;  
    10.     ullAvailVirtual: Int64;  
    11.     ullAvailExtendedVirtual: Int64;  
    12.   end;  
    13.   
    14. Function GlobalMemoryStatusEx(var lpBuffer: TMemoryStatusEx): BOOL; stdcall; external kernel32;  
    15.   
    16.  MemoryStatusEx.dwLength := SizeOf(MemoryStatusEx);  
    17.  GlobalMemoryStatusEx(MemoryStatusEx);  
    18.   
    19. Memo2.Lines.Add(FormatFloat('#,###', ullTotalPhys) );   //如果真实内存超过4G  会显示真实内存 上限为3.5G。 当然 如果机器为64位会真实显示。   



     说明:以上环境针对32位操作系统 如果您的操作系统是64位 不会有以上问题

    http://blog.csdn.net/genispan/article/details/4350717

  • 相关阅读:
    图书馆管理系统

    有理数类的设计
    题目4-多关键字排序(基于自定义比较函数)
    图总结
    树、二叉树、查找算法总结
    数据结构小结
    C语言文件
    第二次博客作业
    第一次博客作业
  • 原文地址:https://www.cnblogs.com/findumars/p/7117016.html
Copyright © 2011-2022 走看看