Windows 10 环境中的"This version of XAudio2 is available only in Windows 8"错误



我想在Windows 10的Qt应用程序中使用xaudio2库。我将Qt creator 4.9.2与MinGW 7.3.0编译器结合使用作为IDE。据我所知,xaudio2是Windows SDK的一部分,从Win8开始。我从此页面获得了最新的 SDK 版本,并将其安装在我的工作站上。我通过在 .pro 文件中添加以下行来导入此库:

INCLUDEPATH += "C:Program Files (x86)Windows Kits10Include10.0.18362.0um"
unix|win32: LIBS += -lxaudio2

并且还在我的来源中包含所需的定义,如下所示:

#include <xaudio2.h>

但是当我尝试编译我的应用程序时,出现以下错误:

C:Program Files (x86)Windows Kits10Include10.0.18362.0umxaudio2.h:20: error: #error "This version of XAudio2 is available only in Windows 8 or later. Use the XAudio2 headers and libraries from the DirectX SDK with applications that target Windows 7 and earlier versions."
 #error "This version of XAudio2 is available only in Windows 8 or later. Use the XAudio2 headers and libraries from the DirectX SDK with applications that target Windows 7 and earlier versions."
  ^~~~~

我不明白,为什么编译器不将我的系统标识为 Win10,而是将 Win7 标识为Win7。我还发现,这个SDK版本中只有xaudio2_8.lib,但AFAIK,xaudio2_9.lib应该在Win10上使用。

谁能帮我解决这个问题?

这是

基于预处理器定义的_WINNT_WIN32

如果你看xaudio2.h,你会看到:

#if(_WIN32_WINNT < _WIN32_WINNT_WIN8)
#error "This version of XAudio2 is available only in Windows 8 or later. Use the XAudio2 headers and libraries from the DirectX SDK with applications that target Windows 7 and earlier versions."
#endif // (_WIN32_WINNT < _WIN32_WINNT_WIN8)

_WINNT_WIN32定义必须是 0x0602 (Windows 8.0( 或 0x0603 (Windows 8.1( 或 0x0A00 (Windows 10( 才能面向 XAudio 2.8/2.9。

请参阅此博客文章和Microsoft文档:使用 Windows 标头。

更新:请注意,有一个新软件包可以将XAudio 2.9降级到Windows 7 SP1或更高版本。请参阅Microsoft文档。

相关内容

  • 没有找到相关文章

最新更新