日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何判断一个程序是 32bit 还是 64bit ?

發布時間:2023/12/4 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何判断一个程序是 32bit 还是 64bit ? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

咨詢區

  • Jonathan Allen

我有一個 .NET 應用程序,我覺得它現在是 32bit,但又不確定構建服務器是否真的幫我編譯成了 32bit,請問我有什么辦法可以檢測當前的程序是否是真的 32bit ?

回答區

  • Jaco Pretorius

你想判斷運行的應用程序是 32bit 還是 64bit 的話,方法有很多。

  • 任務管理器

  • 打開 windows 任務管理器,查看該進程名后面是否有 *32 字樣,如果由此字樣那就說明是 32bit應用程序,反之為 64bit。

  • Is64BitProcess屬性

  • .NET 的 Environment 類提供了一個 Is64BitProcess 屬性,你可以判斷 true/false 來獲取當前是否為 32bit/64bit 。

    ////?Summary://?????Gets?a?value?that?indicates?whether?the?current?process?is?a?64-bit?process.////?Returns://?????true?if?the?process?is?64-bit;?otherwise,?false.public?static?bool?Is64BitProcess{get?{?}}
  • 使用 win32 api

  • Win32 API 中提供了一個 IsWow64Process 方法,可以借助它實現,參考如下代碼:

    [DllImport("kernel32.dll",?SetLastError?=?true,?CallingConvention?=?CallingConvention.Winapi)] [return:?MarshalAs(UnmanagedType.Bool)] public?static?extern?bool?IsWow64Process([In]?IntPtr?hProcess,[Out]?out?bool?wow64Process );

    接下來包裝成一個可以判斷 Process 的 IsProcess64() 方法。

    public?static?bool?IsProcess64(Process?process) {if?((Environment.OSVersion.Version.Major?==?5?&&?Environment.OSVersion.Version.Minor?>=?1)?||?Environment.OSVersion.Version.Major?>=?6)?{bool?ret_val;try?{if?(!WindowsAPI.IsWow64Process(process.Handle,out?ret_val))?ret_val?=?false;}?catch?{ret_val?=?false;}if?(!ret_val?&&?IntPtr.Size?==?8)?{return?true;}?else?{return?false;}}?else?{return?false;} }
  • 使用 corflags.exe

  • corflags.exe 小工具可以配置和查詢 應用程序 header 部分的 CorFlags 標記 從而知道你的程序是 32bit 還是 64bit。

    具體參考MSDN連接:https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-2.0/ms164699(v=vs.80)?redirectedfrom=MSDN

  • IntPtr.Size

  • 可以在程序運行來之后,判斷 IntPtr.Size 的值,如何 IntPtr.Size == 4 的話,很顯然是 32bit,如何 IntPtr.Size == 8 說明當前是 64bit。

    點評區

    其實判斷方法有很多,看應用程序的 PE 頭是個好辦法,或者通過工具查看下進程的內存地址的長度來判斷32還是64bit。

    總結

    以上是生活随笔為你收集整理的如何判断一个程序是 32bit 还是 64bit ?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。