Moin Zusammen,
ich hab's mal so gemacht:
Delphi-Quellcode:
type
DWORDLONG = int64;
_MEMORYSTATUSEX = packed record
dwLength : DWORD;
dwMemoryLoad : DWORD;
ullTotalPhys : DWORDLONG;
ullAvailPhys : DWORDLONG ;
ullTotalPageFile : DWORDLONG;
ullAvailPageFile : DWORDLONG;
ullTotalVirtual : DWORDLONG;
ullAvailVirtual : DWORDLONG;
ullAvailExtendedVirtual : DWORDLONG;
end;
MEMORYSTATUSEX = _MEMORYSTATUSEX;
LPMEMORYSTATUSEX = ^_MEMORYSTATUSEX;
function GlobalMemoryStatusEx(const ApMemoryStatusEx : LPMEMORYSTATUSEX) : LongBool; stdcall; external 'kernel32.dll';
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
pmse : LPMEMORYSTATUSEX;
begin
pmse := AllocMem(SizeOf(_MEMORYSTATUSEX));
try
if not GlobalMemoryStatusEx(pmse) then begin
ShowMessage(SysErrorMessage(GetLastError));
end;
finally
FreeMem(pmse,SizeOf(_MEMORYSTATUSEX));
end;
end;
und erhalte, als Fehlermeldung, Falscher Parameter.
Der Aufruf schlägt also fehl.
Windows XP Pro SP2