vc编程判断运行时os是32位还是64位

windows操作系统有32位和64位两种。
一个程序如何在运行时判断所运行的系统是32位的还是64位的?
64位操作系统上可以运行32位和64位程序。
vs2013采用Visual Studio 2013 - Windows XP (v120_xp)平台工具集编译的exe程序,既可以运行在32位操作系统上,也可以在64位操作系统上运行。

通过sizeof(int *)的值是4或8不能判断所运行系统os是32位还是64位的,
因为sizeof(指针)的运算跟编译器设置有关,
你编译的是32位的应用,sizeof(指针)是4,不管在32位os还是64位os下,
都是4。
因此采用sizeof(指针)是4还是8判断的方式不妥。

因此采用系统API函数GetNativeSystemInfo获取系统信息,根据获取的wProcessorArchitecture的值是不是PROCESSOR_ARCHITECTURE_AMD64或者PROCESSOR_ARCHITECTURE_IA64来判断,
是就是64位os,不是就32位os,
代码如下:

#include <windows.h>
#include <stdio.h>
#pragma comment(lib, "user32.lib")

int main(int argc, <
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值