und damit es auch korrekt funktioniert auf systemen mit mehr als 4gb ram:ts-soft hat geschrieben:Wenn interessiert der GraKa Speicher, der ist schnurz (4 MB sollten reichenAND51 hat geschrieben: > Du solltest noch den available Memory checken
Wie mache ich das denn? Mir fällt nur der Befehl ein, um zu ermitteln, wie viel Speicher der RAM der Grafikkarte hat. Oder meinst du ich soll den physikalischen RAM mit Hilfe einer API Funktion ermitteln?)
Nein, mehr als die hälfte des verfügbaren Speichers würde ich ungerne
benutzen.Code: Alles auswählen
; Structure MEMORYSTATUS ; dwLength.l ; dwMemoryLoad.l ; dwTotalPhys.l ; dwAvailPhys.l ; dwTotalPageFile.l ; dwAvailPageFile.l ; dwTotalVirtual.l ; dwAvailVirtual.l ; EndStructure Define.MEMORYSTATUS MyMem GlobalMemoryStatus_(@MyMem) Debug MyMem\dwAvailPhys
Code: Alles auswählen
Procedure.q GetFreeMemory()
Library = OpenLibrary(#PB_Any, "kernel32.dll")
If Library
If OSVersion() >= #PB_OS_Windows_2000
memex.MEMORYSTATUSEX
memex\dwLength = SizeOf(MEMORYSTATUSEX)
*Function = GetFunction(Library, "GlobalMemoryStatusEx")
If *Function
CallFunctionFast(*Function, @memex)
Result.q = memex\ullAvailPhys
EndIf
Else
mem.MEMORYSTATUS
mem\dwLength = SizeOf(MEMORYSTATUS)
*Function = GetFunction(Library, "GlobalMemoryStatus")
If *Function
CallFunctionFast(*Function, @mem)
Result = mem\dwAvailPhys
EndIf
EndIf
CloseLibrary(Library)
EndIf
ProcedureReturn Result
EndProcedure
Debug "Free Memory: "+Str(GetFreeMemory() / 1048576)+" MB"

c ya,
nco2k