64位Wnidows 里面有个叫Wow64 的模拟器技术,可以使32位的程序在64位Windows 上运行。 当你想在程序里面针对32b位/ 64位系统执行不同代码的时候, 需要判断操作系统是32位还是64位。 使用 Windows API函数 GetNativeSystemInfo 可以获得这个信息。
代码示例:
SYSTEM_INFO si;
GetNativeSystemInfo(&si);
if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64 ||
si.wProcessorArchitecture != PROCESSOR_ARCHITECTURE_IA64 )
{
//64 位操作系统
}
else
{
// 32 位操作系统
}
另外,Windows API 还提供了 IsWow64Process 函数判断程序是不是运行在Wow64模拟器之上。
代码示例:
BOOL bIsWow64 = FALSE;
IsWow64Process(GetCurrentProcess(), &bIsWow64);

需要注意是GetNativeSystemInfo  函数从Windows XP 开始才有, 而 IsWow64Process  函数从 Windows XP with SP2 以及 Windows Server 2003 with SP1 开始才有。 所以使用该函数的时候最好用GetProcAddress。
typedef void (WINAPI *LPFN_PGNSI)(LPSYSTEM_INFO);
typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
LPFN_PGNSI pGNSI = (LPFN_PGNSI ) GetProcAddress(
GetModuleHandle(TEXT("kernel32.dll")),  "GetNativeSystemInfo");
LPFN_ISWOW64PROCESS  fnIsWow64Process = (LPFN_ISWOW64PROCESS) GetProcAddress(
       GetModuleHandle(TEXT("kernel32")),"IsWow64Process");
本文转自 陈本峰 51CTO博客,原文链接:http://blog.51cto.com/wingeek/274003,如需转载请自行联系原作者

[Windows编程] 如何判断操作系统是64位还是32位相关推荐

  1. c语言程序判断32位还是64位,c++ 判断是64位还是32位系统的实例

    1.IsWow64Process 确定指定进程是否运行在64位操作系统的32环境(Wow64)下. 语法 BOOL WINAPI IsWow64Process( __in HANDLE hProces ...

  2. 【分享】如何判断个人电脑是多少位(32位?还是64位系统)

    如何判断个人电脑是多少位(32位?还是64位系统) 在开始>运行中输入"cmd",然后在命令提示符窗口中输入"systeminfo",如果系统是64位的, ...

  3. 计算机二级安装64位的还是,判断电脑适合装64位还是32位系统需要cpu支持,很多人都搞错了!...

    昨天把系统又重装了一下,猛然发现,我的电脑可以装64位操作系统,而我一直用的是32位操作系统,因为几年前,64位操作系统缺乏驱动,市面上的软件在32位(X86)操作系统兼容性好,而这几年,硬件配置的提 ...

  4. 操作系统64位和32位的区别。

    简单的说x86代表32位操作系统 x64代表64位操作系统.如果你的CPU是双核以上,那肯定支持64位操作系统了.如果你的电脑内存大于4G,那就要用64位的系统了,因为32位的Windows 7也好, ...

  5. VC程序里判断系统是64位还是32位的正确方法

    VC程序里判断系统是64位还是32位的正确方法 BOOL IsWow64()  {      typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, P ...

  6. windows win7 64位 win7 32位 win10共享打印机提示0x000006cc的解决方法

    windows win7 64位 win7 32位 win10共享打印机提示0x000006cc的解决方法: 点击左下角开始,点击运行,输入 cmd 点击确定,在命令窗口输入 netsh winsoc ...

  7. 服务器64位还是32位系统好,云服务器64位还是32位

    云服务器64位还是32位 内容精选 换一换 Windows操作系统与Linux操作系统没有好坏之分,只有适合不适合.请根据业务需求选择Windows或Linux的操作系统.华为云提供了5个版本,且每个 ...

  8. 64位系统下同时使用64位和32位的eclipse

    64位系统下同时使用64位和32位的eclipse eclipse.ini 文件使用说明 The -vm option and its value (the path) must be on sepa ...

  9. 如何识别64位和32位CPU

    如何识别64位和32位CPU 原文地址:http://blog.chinaunix.net/u/23566/showart.php?id=166513 硬件环境: IA-64 AMD Athlon(t ...

最新文章

  1. 单元测试——第六周作业
  2. Python Django HttpResponse响应json数据
  3. pythonmsgbox怎么使用_如何使用tkinter的messagebox
  4. 极品飞车ol服务器维护,《极品飞车OL》配件升级常见问题介绍
  5. koa mysql 按钮级权限_Vue 指令实现按钮级别权限管理功能
  6. UVA12633 Super Rooks on Chessboard
  7. Linux/Unix服务端和客户端Socket编程入门实例(含源码下载)
  8. element 使用阿里图标变形了_2TB不限速的阿里网盘App来了 终于不再忍受众生平等盘...
  9. linux重启openfire服务,Centos下Openfire详细安装过程
  10. java左移负数位_java的左移运算符和右移运算符
  11. 云计算解决方案--百度文库
  12. JS常见网页特效案例
  13. 哈工大数据库系统(上):嵌入式SQL语言之基本技巧(九)课后测验与作业
  14. 测试小故事48:想当然
  15. 数据字典模板_揭秘|让企业55%的潜藏数据「分类」呈现,需几步?
  16. 使用Docker+Jenkin自动化流水线
  17. 云时代,有必要了解的华为云计算解决方案
  18. 英特尔前高管的IC职业生涯分享(文字版)写给想进入IC设计的同学们!
  19. 一些有用的优化应用技巧
  20. 微信刷阅读量php源码,微信刷阅读量软件工具

热门文章

  1. 对大学生使用计算机的看法英语作文,对社交网站的看法大学生英语作文 关于对社交网站的看法的大学生英语作文...
  2. java 限流熔断_SpringCloud-Alibaba-Sentinel服务降级,热点限流,服务熔断
  3. java vm art_Android虚拟机art流程:JavaVM 和 JNIEnv 的初始化 - 神农笔记
  4. 微信群怎么设置验证加入_怎么让微信群裂变拉人/拉人进群奖励方案/微信裂变营销方案策划...
  5. python写web自动化_jenkins+selenium+python实现web自动化测试
  6. redis 命令 释放连接_Redis---gt;02
  7. git rebase 丢弃提交
  8. pytorch torch.utils.data.Dataset
  9. pytorch nn.Linear
  10. 编程语言对比 迭代器