方法一:
對於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方法二:(需framework4.0+)static
string
detect3264()
return
addresswidth;
}
bool如返回值為true則表示是64位,如返回值為false則表示為32位。type;
type =environment.is64bitoperatingsystem;
console.writeline(type);
方法三:
這個方法也是最直接的方法,但是有條件限制,例用intptr結構的size屬性來檢視系統的位寬
命名空間是system;
前題是程式需要採用any/cpu的方式進行編輯;
正常情況下int的位寬是4位,即是32位作業系統。
if (intptr.size == 8方法四:)else
if (intptr.size == 4
)else
64位wnidows 裡面有個叫wow64 的模擬器技術,可以使32位的程式在64位windows 上執行。 當你想在程式裡面針對32b位/ 64位系統執行不同**的時候, 需要判斷作業系統是32位還是64位。 使用 windows api函式 getnativesysteminfo 可以獲得這個資訊。
system_info si;另外,windows api 還提供了 iswow64process 函式判斷程式是不是執行在wow64模擬器之上。getnativesysteminfo(&si);
if (si.wprocessorarchitecture == processor_architecture_amd64 ||si.wprocessorarchitecture !=processor_architecture_ia64 )
else
bool biswow64 =false;需要注意是getnativesysteminfo 函式從windows xp 開始才有, 而 iswow64process 函式從 windows xp with sp2 以及 windows server 2003 with sp1 開始才有。 所以使用該函式的時候最好用getprocaddress。iswow64process(getcurrentprocess(), &biswow64);
typedef void (winapi *lpfn_pgnsi)(lpsystem_info);摘自:typedef bool (winapi *lpfn_iswow64process) (handle, pbool);
lpfn_pgnsi pgnsi =(lpfn_pgnsi ) getprocaddress(
getmodulehandle(text("kernel32.dll")), "getnativesysteminfo");
lpfn_iswow64process fniswow64process =(lpfn_iswow64process) getprocaddress(
getmodulehandle(text("kernel32")),"iswow64process");
C 如何判斷作業系統位數是32位還是64位
方法一 對於c 來說,呼叫wmi是一種簡單易行的方式。我們可以用win32 processor類裡面的addresswidth屬性來表示系統的位寬。addresswidth的值受cpu和作業系統的雙重影響。具體的值如下面的 所示 32bit os 64bit os 32bit cpu address...
如何判斷作業系統是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位的方法
判斷系統是否是64位的方法有很多。對於c 來說,呼叫wmi是一種簡單易行的方式。我們可以用win32 processor類裡面的addresswidth屬性來表示系統的位寬。addresswidth的值受cpu和作業系統的雙重影響。具體的值如下面的 所示 32bit os 64bit os 32bi...