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