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

时间:2010-11-23 17:04:33

标签: windows winapi visual-c++ windows-7 ms-media-foundation

我打算使用vista之后可用的媒体基础API编写一段代码。我想在#if块中添加代码,如...

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

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

谢谢, 阿希奈。

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

不是真的。您可以做的最好的事情是关闭WIN32_WINNT宏,但如果有人转身并尝试在XP上运行您的应用程序,这对您没有帮助。

答案 2 :(得分:1)

尝试使用_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