判斷系統是否是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)
publicstatic
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...