32或64位机器

本文关键字:机器 64位 | 更新日期: 2023-09-27 18:14:05

可能重复:
如何用.net检测Windows 64位平台?

我使用这个代码来检查机器是64位还是32位:

    public static string GetOSBit()
    {
        bool is64bit = Is64Bit();
        if (is64bit)
            return "64 bit";
        else
            return "32 bit";
    }
    [DllImport("kernel32.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)]
    [return: MarshalAs(UnmanagedType.Bool)]
    public static extern bool IsWow64Process([In] IntPtr hProcess, [Out] out bool lpSystemInfo);
    public static bool Is64Bit()
    {
        bool retVal;
        IsWow64Process(Process.GetCurrentProcess().Handle, out retVal);
        return retVal;
    }

我有一台32位的机器,它对我来说还可以。它返回"32位"。然而,我的朋友也有一台32位的机器,但安装了64位的虚拟机。上面的代码为她的虚拟机返回"32位",尽管它是64位的。我在C#,.Net 2.0中工作。

32或64位机器

函数IsWow64Process确定指定的进程是否在WOW64下运行。因此,基本上,当为在64位操作系统下运行的32位进程调用时,它会返回true

您可以使用Environment.Is64BitOperatingSystem

有关更多答案和讨论,请参阅此问题。


编辑:哦,没看到这个问题是关于.net 2.0的。(保留答案以供参考。(