如何判断当前是否运行在64位的Windows?

如何判断当前是否运行在64位的Windows?

作者:BlogUpdater |  时间:2022-04-26 |  浏览:109 |  评论已关闭 条评论

如果你想使用代码的方式来判断一个32位的程序是否运行在一个64位的Windows系统上,你可以使用这个API: IsWow64Process。今天我们来仔细看看。

请不要轻易详细网上其他人的一些说法,将64位处理器的列表硬编码到你的程序中。
你可能会认为,在第一次修改64位处理器的硬编码列表(例如,将 x64 添加到 ia64 时)之后,人们会吸取教训。

但是,如何从 64 位进程中以编程方式检测是否在 64 位 Windows 上运行? 那其实简单的。

为什么上面的代码直接返回了TRUE?
因为,你的 64 位程序正在运行这一事实意味着,你正在 64 位 Windows 上运行! 如果它是 32 位机器,程序将无法运行。

这就好比,你的程序问了这样一个问题,“电源打开了吗?” 如果没有电源,你的程序将无法提出问题。

当然了,如果你想要一个既可以编译为 32 位程序又可以编译为 64 位程序的源代码库,那么要做的工作量很少。

如果你疯狂到仍然在编写 16 位 Windows 程序,我会为 16 位程序创建一个分支。
哈哈哈。

总结
此技法确实好用,我一直在用。虽然,目前TopomelBox只发布了32位版本,但每日构建我都会生成32位和64位版本。
所以,如果不幸地有一天,老大哥(Microsoft)决定完全废弃掉32位版本的支持,我也能很快的切换到64位版本上去。

猿友们,要未雨绸缪。

最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《How to detect programmatically whether you are running on 64-bit Windows》

最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。

评论已关闭。