On Tue, Mar 15, 2011 at 11:35 AM, Henry Vermaak <henry.verm...@gmail.com> wrote: > On 15 March 2011 14:25, Marcos Douglas <m...@delfire.net> wrote: >> On Tue, Mar 15, 2011 at 11:13 AM, Henry Vermaak <henry.verm...@gmail.com> >> wrote: >>> >>> On 15 March 2011 14:05, Marcos Douglas <m...@delfire.net> wrote: >>> > Is there some function to know if the Windows is 32 or 64? >>> >>> You can use the GetNativeSystemInfo function. Check >>> TSystemInfo.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64 to >>> see if it's 64 bit. >> >> What unit? > > None, since the minimum supported client is XP. Try to load it yourself, > e.g.: > > type > TGNSIProc = procedure (var lpSystemInfo: TSystemInfo); stdcall; > > const > PROCESSOR_ARCHITECTURE_AMD64 = 9; > > function Isx64: Boolean; > var > si: TSystemInfo; > GNSIProc: TGNSIProc; > begin > Result := False; > ZeroMemory(@si, SizeOf(si)); > @GNSIProc := GetProcAddress(GetModuleHandle('kernel32.dll'), > 'GetNativeSystemInfo'); > if @GNSIProc = nil then > Exit; > GNSIProc(si); > if si.wProcessorArchitecture = PROCESSOR_ARCHITECTURE_AMD64 then > Result := True; > end;
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 > > This ignores ia64, as you can see. What is ia64? Marcos Douglas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal