Tom*_*don 5 windows directx xaudio2 windows-7 visual-studio-2012
我正在尝试使用以下说明来构建一些使用 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>
Run Code Online (Sandbox Code Playgroud)
结果:
fatal error C1083: Cannot open include file: '%DXSDK_DIR%Include\xaudio2.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)
那好吧。我很确定 VC++ 并没有像那样扩展环境变量。所以我#include用一个直接包含它的替换了它:
#include <C:/Program Files (x86)/Microsoft DirectX SDK (June 2010)/Include/XAudio2.h>
Run Code Online (Sandbox Code Playgroud)
(其他一些说明,也建议使用完整路径,可以在这里找到:http : //blogs.msdn.com/b/chuckw/archive/2012/04/02/xaudio2-and-windows-8-consumer-预览.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
Run Code Online (Sandbox Code Playgroud)
果然,该文件包括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)
Run Code Online (Sandbox Code Playgroud)
(我的项目也包括 DirectX 头文件。)
如果我将 DirectX SDK 包含文件夹添加到搜索路径列表的另一端,则结果相同。
有没有人在遵循这些(或任何其他)说明的同时设法使其中的任何一项工作?
XAudio2 API 现在是 Windows 8 中的系统组件。XAudio2 的标头和库可在 Windows SDK 中找到。
好吧,问题是您混合了 DirectX SDK 中的旧标头和 Win8 SDK 中的新标头,而这些标头并不打算一起使用。
大多数时候
warning C4005: macro redefinition
Run Code Online (Sandbox Code Playgroud)
意味着您的代码编译并运行良好。但为了防止将来可能出现的错误,您必须使用以下之一:
编辑:我编辑了我的答案,因为我发现 XAudio 仍然没有过时=)
| 归档时间: |
|
| 查看次数: |
6181 次 |
| 最近记录: |