gpt4 book ai didi

windows - 在 Windows 7 上使用 XAudio2 构建

转载 作者:可可西里 更新时间:2023-11-01 14:36:14 26 4
gpt4 key购买 nike

我正在尝试使用以下说明构建一些使用 XAudio2 并在 Windows 7 上运行的代码:

http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275%28v=vs.85%29.aspx

按照建议,我包含了 DirectX SDK 中的 XAudio2.h:

#include <%DXSDK_DIR%Include\xaudio2.h>

结果:

fatal error C1083: Cannot open include file: '%DXSDK_DIR%Include\xaudio2.h': No such file or directory

好吧。我很确定 VC++ 不会像那样扩展环境变量。所以我将 #include 替换为直接包含它的代码:

#include <C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)/Include/XAudio2.h>

(其他一些也建议使用完整路径的说明,可在此处找到:http://blogs.msdn.com/b/chuckw/archive/2012/04/02/xaudio2-and-windows-8-consumer-preview.aspx)

结果:

c:\program files (x86)\microsoft directx sdk (june 2010)\include\xaudio2.h(20): fatal error C1083: Cannot open include file: 'comdecl.h': No such file or directory

果然,该文件包含使用尖括号的 comdecl.h,指示 VC++ 在当前文件夹之外查看。

然后我将 DirectX SDK 包含文件夹 ($(DXSDK_DIR)/include) 添加到项目 #include 搜索路径中,然后将 #include 保持原样,并且:

c:\program files (x86)\microsoft directx sdk (june 2010)\include\dxgitype.h(12): warning C4005: 'DXGI_STATUS_OCCLUDED' : macro redefinition
c:\program files (x86)\windows kits\8.0\include\shared\winerror.h(49449) : see previous definition of 'DXGI_STATUS_OCCLUDED'

(...ad infinitum)

(我的项目也包含 DirectX header 。)

如果我将 DirectX SDK 包含文件夹添加到搜索路径列表的另一端,结果相同。

有没有人在遵循这些(或任何其他)说明的同时设法让其中的任何一个工作?

最佳答案

The XAudio2 API is now a system component in Windows 8. The headers and libraries for XAudio2 are available in the Windows SDK.

好吧,问题在于您将 DirectX SDK 中的旧 header 与 Win8 SDK 中的新 header 混合在一起,而这些 header 不打算一起使用。

大多数时候

warning C4005: macro redefinition

表示您的代码编译并运行良好。但是为了防止将来可能出现的错误,您必须使用以下之一:

  • Windows 8 SDK v110_xp 工具集(项目属性 -> 常规 -> 平台工具集)和旧的 DirectX SDK。有一些缺点:阅读底部here
  • Windows 7 SDK v100 工具集和旧版 DirectX SDK。您需要安装 Windows 7 SDK .
  • 仅 Windows 8 SDK v110 平台工具集。
  • 深入研究 header ,隔离和剥离 XAudio2 内容,使其可以独立于任何 SDK 使用。但这不是个好主意 =)

编辑:我编辑了我的答案,因为我发现 XAudio 仍然没有过时 =)

关于windows - 在 Windows 7 上使用 XAudio2 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17097823/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com