如果基础Windows是32位或64位版本,如何检测正在运行的C ++ / Qt应用程序?

可能重复:
检测当前的Windows版本是32位还是64位
在运行时检查Windows是否为64位的正确方法? (C ++)

我发现了一些有关这个话题的问题,但并不完全是我所需要的。

我正在开发一个完全跨平台的C ++ / Qt应用程序,除了一些预编译的.exe的应用程序必须运行。 (只有Windows是相关的问题)。 我有这些可执行文件的32位和64位Windows版本。 我知道一个select是打包整个应用程序的两个版本,但是代码中的更改将会非常less,以至于我想要考虑其他select。

那么,有没有一种方法可以在运行时使用C ++ / Qt特性检测底层Windows是32位还是64位版本?

谢谢!

不,但你可以调用WINAPI函数告诉你这个。

调用GetNativeSystemInfo() 。 如果你正在运行x64, SYSTEM_INFO::wProcessorArchitecture将是PROCESSOR_ARCHITECTURE_AMD64 。 如果32位的x86位将是PROCESSOR_ARCHITECTURE_INTEL