C++ 从c/c+确定32位操作系统或64位操作系统+;应用

C++ 从c/c+确定32位操作系统或64位操作系统+;应用,c++,windows,visual-studio,visual-studio-2008,windows-10,C++,Windows,Visual Studio,Visual Studio 2008,Windows 10,我在Microsoft visual studio上构建了32位应用程序,现在我必须在64位操作系统上运行此应用程序&我的要求基于操作系统(32位或64位)。我需要加载dll,我只是在visual studio中查找一个宏,它告诉我当前操作系统的位数(32位或64位)我正在其上运行我的应用程序 我在MSV中找到了WIN32和WIN64宏,但似乎在VS2008和VS2010中有一个宏,它们中没有定义WIN64 在Visual studio()中是否有一种方法可以确定我是在64位操作系统上运行应用程

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

我在MSV中找到了WIN32和WIN64宏,但似乎在VS2008和VS2010中有一个宏,它们中没有定义WIN64


在Visual studio()中是否有一种方法可以确定我是在64位操作系统上运行应用程序还是在32位操作系统上运行应用程序(不是32位应用程序或64位应用程序),更具体地说,我是在寻找一个宏,而不是像IsWow64Process()这样的函数??不可能有一个预处理器宏来告诉您是在32位还是64位Windows上运行。预处理器宏的值在编译时定义。相同的可执行文件(只编译一次)可以在32位和64位Windows上运行

您必须使用运行时函数


注意,这整件事听起来像是一个X-Y问题;微软不遗余力地避免你需要知道操作系统是什么。我建议您就实际问题再问一个问题。

您不可能有一个预处理器宏来告诉您是在32位还是64位Windows上运行。预处理器宏的值在编译时定义。相同的可执行文件(只编译一次)可以在32位和64位Windows上运行

您必须使用运行时函数


注意,这整件事听起来像是一个X-Y问题;微软不遗余力地避免你需要知道操作系统是什么。我建议您就实际问题再问一个问题。

请注意,您的32位应用程序无法加载64位DLL。操作系统是无关的。这个错误是IDE错误,而不是编译器错误。编译时,将显示宏。但是,缺少WIN64不会阻止用户在64位Windows上运行程序。这就是
IsWow64Process()
的作用所在。@MSalters我没有说我正在加载64位DLL,我只想加载不同的32位DLL。@Durga:在安装程序中修复它不是更容易吗?请注意,32位应用程序无法加载64位DLL。操作系统是无关的。这个错误是IDE错误,而不是编译器错误。编译时,将显示宏。但是,缺少WIN64不会阻止用户在64位Windows上运行程序。这就是
IsWow64Process()
的作用所在。@MSalters我没有说我正在加载64位DLL,我只想加载32位的不同DLL。@Durga:在安装程序中修复它不是更容易吗?