C 判斷作業系統是32位還是64位的方法

2021-05-24 09:16:16 字數 1149 閱讀 7690

判斷系統是否是64位的方法有很多。

對於c#來說,呼叫wmi是一種簡單易行的方式。我們可以用win32_processor類裡面的addresswidth屬性來表示系統的位寬。addresswidth的值受cpu和作業系統的雙重影響。

具體的值如下面的**所示:

32bit os

64bit os

32bit cpu

addresswidth = 32

n/a64bit cpu

addresswidth = 32

addresswidth = 64

可以用下面的c#**得到addresswidth的值

(注意需新增引用system.management)

public

static

string

distinguish64or32system()

return

addresswidth;

}catch

(exception ex)

}最近因為要根據系統的情況來決定安裝那種驅動,所以需要判斷下系統是32bit,還是64bit

方法一:主要是利用getsystemwow64directory這個函式來判斷!

方法二:主要是利用iswow64process

#include typedef bool (winapi *lpfn_iswow64process) (handle, pbool); lpfn_iswow64process fniswow64process = (lpfn_iswow64process)getprocaddress( getmodulehandle("kernel32"),"iswow64process"); bool iswow64() } return biswow64; }

//判斷當前程序

c# code

if (intptr.size == 8)

else if (intptr.size == 4)

正確的方法應該是這樣:

bool iswow64()

return biswow64;

}

不是判斷函式位址是否有效,而是判斷輸出型引數biswow64的值.

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

64位機器可以執行32 64位作業系統,而32位機器只能執行32位作業系統,這樣就有乙個問題,對於乙個64位機器,如何判斷作業系統究竟是32位還是64位呢?總結了一下,基本方法如下 1.linux file sbin init sbin init elf 32 bit lsb executable,...

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...