如何判斷作業系統是32位還是64位

2021-04-30 07:28:34 字數 1016 閱讀 1896

64位機器可以執行32/64位作業系統,而32位機器只能執行32位作業系統,這樣就有乙個問題,對於乙個64位機器,如何判斷作業系統究竟是32位還是64位呢?

總結了一下,基本方法如下:

1.linux:

#file /sbin/init

/sbin/init: elf;32-bit; lsb executable, intel 80386......

2.hpux:

#getconf kernel_bits

3.windows

#include

#include

bool iswow64()

else

return true;

}return biswow64;

}int main()

主要是利用了iswow64process,這是乙個windows api,如果程序是執行在64位系統上的32位程式,則返回true,我們用32位方式編譯這個程式並執行,即可判斷作業系統的位數。

補充delphi版的,寫出乙個函式了,直接呼叫~

function runninginwow64:boolean;

type

lpfn_iswow64process=function(hand:hwnd; isit:pboolean):boolean; stdcall;

var

piswow64process:lpfn_iswow64process;

iswow64:boolean;

begin

result:=false;

@piswow64process:=getprocaddress(getmodulehandle('kernel32'),'iswow64process');

if @piswow64process=nil then exit;

piswow64process(getcurrentprocess,@iswow64);

result:=iswow64;

end;

C 如何判斷作業系統位數是32位還是64位

方法一 對於c 來說,呼叫wmi是一種簡單易行的方式。我們可以用win32 processor類裡面的addresswidth屬性來表示系統的位寬。addresswidth的值受cpu和作業系統的雙重影響。具體的值如下面的 所示 32bit os 64bit os 32bit cpu address...

C 如何判斷作業系統位數是32位還是64位

方法一 對於c 來說,呼叫wmi是一種簡單易行的方式。我們可以用win32 processor類裡面的addresswidth屬性來表示系統的位寬。addresswidth的值受cpu和作業系統的雙重影響。具體的值如下面的 所示 32bit os 64bit os 32bit cpu address...

VC 如何判斷當前作業系統是32位還是64位?

方法如下 include include typedef bool winapi lpfn iswow64process handle,pbool lpfn iswow64process fniswow64process bool iswow64 return biswow64 int main v...