检测 32 位或 64 位 Windows

新手上路,请多包涵

我想检测当前的 Windows 操作系统是 32 位还是 64 位。如何使用 C++ 实现它?我不想要处理器类型我想要操作系统的位类型。这是因为您可以在 64 位处理器上安装 32 位操作系统。

原文由 Rahul 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 862
2 个回答

要调用的函数是 IsWow64ProcessIsWow64Process2 。它告诉您的 32 位应用程序是否在 64 位 Windows 上运行。

如果程序编译为 64 位,它就已经知道了。

原文由 Bo Persson 发布,翻译遵循 CC BY-SA 4.0 许可协议

这是一个未记录的方法…

 bool _Is64BitOS(void);

bool   _Is64BitOS(void) {
    unsigned int version = *((unsigned int)*)0x7FFE026C;
    unsigned int address = version == 10 ? 0x7FFE0308 : 0x7FFE0300;
//printf("Running %u-bit system",*((void*)*)address ? 32 : 64);

    return (*((void*)*)address ? false,true);
};

原文由 Lewis Miller 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题