Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Fehler beim Auslesen des Arbeitsspeichers größer 2GB (https://www.delphipraxis.net/90027-fehler-beim-auslesen-des-arbeitsspeichers-groesser-2gb.html)

RWarnecke 10. Apr 2007 18:36


Fehler beim Auslesen des Arbeitsspeichers größer 2GB
 
Hallo zusammen,

ich lese mit der folgenden Function die Größe des physikalischen Arbeitsspeicher aus :
Delphi-Quellcode:
Function TotalPhysicalRAM : Int64;
var memStat : TMemoryStatus;
Begin
  memStat.dwLength:= SizeOf(TMemoryStatus);
  GlobalMemoryStatus( memStat );
  Result:= memStat.dwTotalPhys;
End;
Nur habe ich damit ein Problem, warum kann liest diese Funktion nicht den richtigen Arbeitsspeicher aus, wenn mein physikalischer Arbeitsspeicher mehr als 2 GB beträgt ? Wie kann ich das ändern ?

Olli 10. Apr 2007 18:38

Re: Fehler beim Auslesen des Arbeitsspeichers größer 2GB
 
Da gab es IMO ein Flag fuer den Compiler oder den Memory-Manager. Jedenfalls war das eine delphispezifische Einschraenkung in frueheren Versionen.

RWarnecke 10. Apr 2007 18:40

Re: Fehler beim Auslesen des Arbeitsspeichers größer 2GB
 
Danke für Deine rasche Antwort. Nur leider kann ich damit im Moment garnichts anfangen.

Olli 10. Apr 2007 18:44

Re: Fehler beim Auslesen des Arbeitsspeichers größer 2GB
 
Sorry, habe hier auf Arbeit kein Delphi ;)

Aber guck mal hier: http://bdn1.borland.com/article/0,14...AddressSpaceGB

Luckie 10. Apr 2007 21:48

Re: Fehler beim Auslesen des Arbeitsspeichers größer 2GB
 
Hilfe lesen:
Zitat:

On computers with more than 4 GB of memory, the MEMORYSTATUS structure can return incorrect information. Windows reports a value of -1 to indicate an overflow, while Windows NT reports a value that is the real amount of memory, modulo 4 GB. If your application is at risk for this behavior, use the GlobalMemoryStatusEx function instead of the GlobalMemoryStatus function.

Olli 10. Apr 2007 21:58

Re: Fehler beim Auslesen des Arbeitsspeichers größer 2GB
 
Stimmt, er benutzt ja garkeine Pointer. :wall:

Luckie 10. Apr 2007 23:38

Re: Fehler beim Auslesen des Arbeitsspeichers größer 2GB
 
Schön auch die Formulierung:
Zitat:

Windows reports a value of -1 to indicate an overflow, while Windows NT
Windows <> Windows NT. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:22 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz