On Tue, Mar 15, 2011 at 12:05 PM, Sven Barth <pascaldra...@googlemail.com> wrote: >> Weird. This code did not compile in this line: >> @GNSIProc := GetProcAddress(GetModuleHandle('kernel32.dll'), >> 'GetNativeSystemInfo'); >> >> Error: unit1.pas(46,2) Error: Can't assign values to an address >> >> > > Just a guess: > Add {$mode delphi} at the top. > > Another solution would be: > GNSIProc := TGNSIProc(GetProcAddress(...));
I forgot... =( I just copied the code from Delphi to Lazarus... sorry. I used the second solution. >>> This ignores ia64, as you can see. >> >> What is ia64? > > A 64-bit architecture developed by Intel and supported by Windows server > systems (although it should be dropped with one of the next versions?!) and > Linux systems. > > Also see here: > http://en.wikipedia.org/wiki/IA64 Right. But is better ignore the IA64? I found this code to Delphi: const PROCESSOR_ARCHITECTURE_AMD64 = 9; {$EXTERNALSYM PROCESSOR_ARCHITECTURE_AMD64} PROCESSOR_ARCHITECTURE_IA64 = 6; {$EXTERNALSYM PROCESSOR_ARCHITECTURE_IA64} function GetNativeSystemInfo(var SystemInfo: TSystemInfo): Boolean; type TGetNativeSystemInfo = procedure (var SystemInfo: TSystemInfo) stdcall; var LibraryHandle: HMODULE; _GetNativeSystemInfo: TGetNativeSystemInfo; begin Result := False; LibraryHandle := GetModuleHandle(kernel32); if LibraryHandle <> 0 then begin _GetNativeSystemInfo := GetProcAddress( LibraryHandle, 'GetNativeSystemInfo'); if Assigned(_GetNativeSystemInfo) then begin _GetNativeSystemInfo(SystemInfo); Result := True; end else GetSystemInfo(SystemInfo); end else GetSystemInfo(SystemInfo); end; function IsWindows64: Boolean; var ASystemInfo: TSystemInfo; begin GetNativeSystemInfo(ASystemInfo); Result := ASystemInfo.wProcessorArchitecture in [PROCESSOR_ARCHITECTURE_IA64, PROCESSOR_ARCHITECTURE_AMD64]; end; So, IA64 is 6. That is correct? Marcos Douglas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal