C#中判断系统的架构(32位,还是64位)

一种很简单的方法就是根据IntPtr类型的Size属性来判断,

1 //IntPtr.Size在64位为8,在32位为4 
2 public static Boolean Is64Bit()
3 {
4        if (IntPtr.Size == 4)
5            return false;
6        else
7              return true;
8 }
View Code

通过查看IntPtr的源码可以看到:

    //....
    public struct IntPtr : ISerializable
    {
        //...
        // 摘要: 
        //     获得此实例的大小。
        //
        // 返回结果: 
        //     此平台上的指针或句柄的大小,按字节计。此属性的值在 32 位平台上为 4,在 64 位平台上为 8。
        public static int Size { get; }
       //...
}
View Code

确实如此,在64位下IntPtr.Size=8,在32位下为4。

      但请注意:

            在部分Visual Studio中,如VS 2013在64的操作系统中会优先使用32位的架构,所以判断系统架构出错,

           此时只需要在项目的 Properties(属性) --> Bulid(生成) --> Prefer 32-bit(首选32位),将复选框取消即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值