GlobalMemoryStatusEx - liefer falsche Werte?
-
Hallo, ich will den Arbeitsspeicher ermitteln (RAM). In der Systemsteuerung steht 4,00GB aber bei meinem Programm erhalte ich nur 3GB.
Was mache ich falsch?MEMORYSTATUSEX info; int x; info.dwLength = sizeof(MEMORYSTATUSEX); GlobalMemoryStatusEx(&info); x = info.ullTotalPhys / 1024 / 1024 / 1024; printf("RAM : %iGB\n",x);
-
Du hast vermutlich ein x86 App, aber ein x64 OS !?
-
Ja ich habe Windows Vista 64bit.
Kann ich das Problem nicht irgendwie beheben?
-
Schreib ein 64bit Programm

Ansonsten stimmt, was Deine Routine Dir sagt. Denn Dein Programm hat nur Zugriff auf 3GB Hauptspeicher als 32bit Programm.