Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: ETS - Der ExeTimeSaver #28

  Alt 18. Feb 2009, 15:16
Gegen das 2GB Problem von GlobalMemorystatus, gibt es auch noch GlobalMemoryStatusEx:
Delphi-Quellcode:
type DWORDLONG=int64; //uint64 passt besser zu DWORDLONG
                      //bringt aber unter Delphi 7 falsche Werte
type TMemoryStatusEx=packed record
        dwLength: DWORD;
        dwMemoryLoad: DWORD;
        ullTotalPhys: DWORDLONG;
        ullAvailPhys: DWORDLONG;
        ullTotalPageFile: DWORDLONG;
        ullAvailPageFile: DWORDLONG;
        ullTotalVirtual: DWORDLONG;
        ullAvailVirtual: DWORDLONG;
        ullAvailExtendedVirtual: DWORDLONG;
     end;


function GlobalMemoryStatusEx(var lpBuffer: TMemoryStatusEx):bool; stdcall;
   external 'kernel32.dllname 'GlobalMemoryStatusEx';

procedure TForm1.Button1Click(Sender: TObject);
var mem:TMemoryStatusEx;
begin
  mem.dwLength:=sizeof(mem);
  GlobalMemoryStatusEx(mem);
  showmessage(inttostr(memEx.ullTotalPhys)); // -> 3211505664
end;
Ansonsten besteht noch der Fehler mit der Division durch 0 und mein Programm benötigt keinen Speicher (auch wenn es läuft).
Miniaturansicht angehängter Grafiken
fehler_div0_963.jpg   programm_844.jpg  
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat