是否有宏检测操作系统...?

问题描述:

我打算使用vista后可用的媒体基础API编写一段代码。我想在#if块内添加代码,如...是否有宏检测操作系统...?

#if <SomeMacro> 
// all the classes using MediaFoundation go here. 
#endif 

我找不到检测操作系统版本的宏。这通常如何在Windows上完成?我发现_WIN32和_WIN64检测32位和64位,但没有宏来确定api可用性。有没有更好的方法来分离基于vc中API可用性的代码..?

谢谢, Abhinay。

尝试_WIN32_WINNTWINVER宏。这里更多的信息:http://msdn.microsoft.com/en-us/library/aa383745%28VS.85%29.aspx

尝试类似,

#ifdef _WIN32_WINNT_VISTA 
    #if WINVER >= _WIN32_WINNT_VISTA 
     //.... 
    #endif 
#endif 

不是真的。你可以做的最好的办法是关闭WIN32_WINNT宏,但是如果有人转身试图在XP上运行你的应用程序,这并不能帮助你。