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

时间:2014-08-23 14:25:43

标签: c++ c windows windows-phone

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

选项包括:

  1. 桌面应用。操作系统:Win 7 / Win 8.x. CPU:Intel / AMD。设备:PC /笔记本电脑
  2. Windows Phone应用。操作系统:Windows:8.x。 CPU:ARM。设备:Windows Mobile Phone
  3. 桌面应用。操作系统:Windows 8.x. CPU:英特尔。设备:平板电脑
  4. 商店应用。操作系统:Windows 8.x. CPU:英特尔。设备:平板电脑
  5. 桌面应用。操作系统:Windows RT。 CPU:ARM。设备:平板电脑
  6. 商店应用。操作系统:Windows RT。 CPU:ARM。设备:平板电脑
  7. 我不确定[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
    

    谢谢。

1 个答案:

答案 0 :(得分:2)

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

列出了Visual Studio的其他预定义宏here。他们的某些组合应该能够帮助你。例如,为ARM处理器定义了_M_ARM