2014-03-12 53 views
0

当我们正在为Windows 8和Windows 8.1商店应用程序构建时,是否存在预定义,我们需要检测哪些已选定,以便我们可以禁用某些功能。Windows 8.1

我问这是因为我们将Windows 8.1应用程序移植到Windows 8.在Windows 8中,某些功能不可用,所以我们需要重写它们并实现其他功能。 (两个项目,相同的代码)

+1

即将提供答案,但必须运行如此....用[MSDN]开始您的旅程(http://msdn.microsoft.com/en-us/library/windows/desktop/aa383745(v = vs.85).aspx)页面。 –

+0

你真的想要取决于你使用哪个操作系统编译程序吗?通常你会希望它取决于你运行程序的位置,或者如果你不能在运行时进行检测,你希望有两种不同的版本。 –

+0

@HarryJohnston我有两个版本,但共享源代码。我需要检测哪些功能可用,具体取决于我为哪个操作系统构建。 –

回答

1

看看NTDDI_VERSION宏。

#if NTDDI_VERSION == 0x06030000 // NTDDI_WINBLUE 
    /* Windows 8.1 */ 
#elif NTDDI_VERSION == 0x06020000 // NTDDI_WIN8 
    /* Windows 8 */ 
#endif 

确保你已经包括SdkDdkVer.h,但我相信大多数的Windows项目已经这样做,默认情况下。

+0

哈,我完全忘记了Win版本:) –

+0

对于传统的Windows应用程序,这是通常在源代码中设置的东西。当您构建现代UI应用程序时,Visual Studio是否为您设置?你如何告诉Visual Studio你的目标系统? –