从c / c ++应用程序确定32位OS或64位OS

时间:2017-02-27 10:01:04

标签: c++ windows visual-studio visual-studio-2008 windows-10

我在Microsoft visual studio上构建了32位应用程序,现在我必须在64位操作系统上运行此应用程序。我的要求是基于OS(32位或64位)我需要加载一个DLL,我只是在Visual Studio中寻找一个宏,告诉我当前的操作系统位数(32位或64位)我正在运行我的应用程序。

我找到_WIN32& MSVS中的_WIN64宏,但似乎VS2008中有一个bug& VS2010中没有定义_WIN64。

在Visual Studio()中是否有一种方法可以确定我是在64位操作系统还是32位操作系统(不是32位应用程序或64位应用程序)上运行我的应用程序,更具体地说,我正在寻找一个宏不是像IsWow64Process()??

这样的函数

1 个答案:

答案 0 :(得分:4)

您无法使用预处理器宏来告诉您是在32位还是64位Windows上运行。预处理器宏的值在编译时定义。相同的可执行文件(仅编译一次)可以在32位和64位Windows上运行。

您必须使用运行时功能。

请注意,整个事情听起来像是X-Y问题;微软竭尽全力避免您需要知道操作系统是什么。我建议用你真正的问题提出另一个问题。