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;

This ignores ia64, as you can see.

Henry
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to