c++ - 如何检测不同的Windows目标平台?

标签 c++ c windows windows-phone

我想为我的 C/C++ 文件创建一个通用头文件。在该头文件中,我希望编译时检测我正在为哪个平台构建以及我正在为该平台构建什么类型的应用程序。

选项是:

  1. 桌面应用程序。操作系统:Win 7/Win 8.x。中央处理器:英特尔/AMD。设备:个人电脑/笔记本电脑
  2. Windows Phone 应用程序。操作系统: Windows :8.x。中央处理器:ARM。设备:Windows 手机
  3. 桌面应用程序。操作系统:Windows 8.x。中央处理器:英特尔。设备:平板电脑
  4. 商店应用程序。操作系统:Windows 8.x。中央处理器:英特尔。设备:平板电脑
  5. 桌面应用程序。操作系统:Windows RT。中央处理器:ARM。设备:平板电脑
  6. 商店应用程序。操作系统:Windows RT。中央处理器:ARM。设备:平板电脑

我不确定 [3] 和 [5] 是否是实际的可能性。

我查看了 winapifamily.h,但不确定如何解释(或理解)该头文件中的分区表,因此非常感谢您的帮助。

在我希望创建的头文件中,我想要这样的东西:

#ifdef SOME_PREPROCESSOR_DEFINE
/* Option 1*/
#endif

#ifdef SOME_PREPROCESSOR_DEFINE
/* Option 2*/
#endif

#ifdef SOME_PREPROCESSOR_DEFINE
/* Option 3*/
#endif

#ifdef SOME_PREPROCESSOR_DEFINE
/* Option 4*/
#endif

#ifdef SOME_PREPROCESSOR_DEFINE
/* Option 5*/
#endif

#ifdef SOME_PREPROCESSOR_DEFINE
/* Option 6*/
#endif

谢谢。

最佳答案

窗口版本由许多宏定义,参见 this link .您应该能够通过使用这些来区分不同版本的 Windows。

列出了 visual studio 的其他预定义宏 here .它们的一些组合应该能够帮助你。例如,_M_ARM 是为 ARM 处理器定义的。

关于c++ - 如何检测不同的Windows目标平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25462950/

相关文章:

python - 如何使用依赖项维护 python 应用程序,包括我自己的自定义库?

node.js - NodeJS 更改文件和文件夹权限

c++ - Visual Studio 调试器将 AVX 寄存器的上半部分设置为零

C++ 优先级队列在对头元素使用引用时表现异常

c++ - Assimp 面孔指数

c - 结构数组在声明时存储垃圾

c++ - Python 在由主机程序初始化后连接到 C++ dll?

c - 如何确定 pid_t 的最大值?

c++ - const T* const 指向特征矩阵

windows - 警告 : cannot find entry symbol nable-stdcall-fixup; defaulting