Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 8 Visual Studio 2012认为我';我在Windows 8上,需要我不需要的库';你没有吗?_Windows 8_Visual Studio 2012_Directx 11_Xaudio2 - Fatal编程技术网

Windows 8 Visual Studio 2012认为我';我在Windows 8上,需要我不需要的库';你没有吗?

Windows 8 Visual Studio 2012认为我';我在Windows 8上,需要我不需要的库';你没有吗?,windows-8,visual-studio-2012,directx-11,xaudio2,Windows 8,Visual Studio 2012,Directx 11,Xaudio2,我从2010年6月开始在DirectX 11 SDK中的一个示例中实现了代码。我在2012年打开了我的项目,然后在2012年也打开了示例,但是当我运行我的时,它需要XAudio2_8.dll。这怎么可能呢?这是Windows 8中的.dll,SDK中的代码是2010年的-这样的.dll在当时并不存在?最奇怪的是SDK示例的构建和运行,而我的项目需要.dll。我链接了所有库,制作了所有包含,我检查了项目设置,在整个硬盘上搜索这样一个dll,什么都没有…什么会导致这样的问题?我在VS2012下的SD

我从2010年6月开始在DirectX 11 SDK中的一个示例中实现了代码。我在2012年打开了我的项目,然后在2012年也打开了示例,但是当我运行我的时,它需要XAudio2_8.dll。这怎么可能呢?这是Windows 8中的.dll,SDK中的代码是2010年的-这样的.dll在当时并不存在?最奇怪的是SDK示例的构建和运行,而我的项目需要.dll。我链接了所有库,制作了所有包含,我检查了项目设置,在整个硬盘上搜索这样一个dll,什么都没有…什么会导致这样的问题?我在VS2012下的SDK中也遇到了各种其他问题,比如无法识别dx11头中的类型等等。

基本规则是,如果您在Win 8上开发XAudio2程序,请使用Windows SDK,否则,请使用DirectX SDK

如果您正在使用Win7,请确保

  • 您使用的头文件XAudio2.h来自DirectX SDK,类似于C:\Program Files\Microsoft DirectX SDK(2010年6月)\Include\XAudio2.h,而不是来自Win8 SDK,类似于C:\Program Files\Windows Kits\8.0\Include\um\XAudio2.h(如果您安装了Win8 SDK)
  • 调用coinitializex(NULL,COINIT\u多线程);在调用XAudio2Create之前,由于XAudio2的旧版本(2.8之前)是由COM创建的,因此它不需要.lib文件,并且Win8之前的XAudio2没有.lib文件
  • 下面这一页详细介绍了XAudio2的版本,您可以看看


    基本规则是,如果您在Win 8上开发XAudio2程序,请使用Windows SDK,否则,请使用DirectX SDK

    如果您正在使用Win7,请确保

  • 您使用的头文件XAudio2.h来自DirectX SDK,类似于C:\Program Files\Microsoft DirectX SDK(2010年6月)\Include\XAudio2.h,而不是来自Win8 SDK,类似于C:\Program Files\Windows Kits\8.0\Include\um\XAudio2.h(如果您安装了Win8 SDK)
  • 调用coinitializex(NULL,COINIT\u多线程);在调用XAudio2Create之前,由于XAudio2的旧版本(2.8之前)是由COM创建的,因此它不需要.lib文件,并且Win8之前的XAudio2没有.lib文件
  • 下面这一页详细介绍了XAudio2的版本,您可以看看


    Windows 8.x SDK集成了DirectX SDK,这在许多领域意味着您根本不需要使用传统的DirectX SDK。特别是,Direct3D、DirectSound、DirectInput等在Windows 8.x SDK中都具有适当的头文件和库文件

    DirectX SDK非常受人尊敬,因此缺少了一些旧的东西:没有DirectMusic播放、DirectPlay等。我有一篇文章提供了DirectX SDK中所有东西的完整清单

    变得复杂的是XAudio和XInput。XAudio 2.8和XInput 1.4都是Windows 8.x操作系统的一部分,但在Windows 7上不可用。如果您的目标是Windows 7的“底层”,则必须使用XAudio 2.7和XInput 1.3或XInput 9.1.0。这个有点混乱的故事包含在两篇博文中:一篇为,另一篇为。好消息是,XInput的大部分使用实际上在XInput 9.1.0中是可行的,XInput 9.1.0是从windowsvista开始的Windows操作系统的一部分。XAudio“底层”需要混合使用现代Windows 8.x SDK和传统DirectX SDK,再加上必须使用传统DirectX SDK REDIST(DirectSetup)

    出现“运行时”错误而不是“编译时”错误的根本原因是,您没有为Windows 7将_WIN32_WINNT设置为0x0601(或为Windows Vista设置为0x0600)。如果有,Windows 8.x SDK中的XINPUT.H头将自动使用XINPUT 9.1.0版本,而Windows 8.x SDK中的XAUIOD2.H头将出错,并告诉您它不适用于Windows 7


    最后,我清理了许多旧的Direct SDK示例,并将其重新发布到中,这样它们就不需要旧的DirectX SDK了。

    Windows 8.x SDK集成了DirectX SDK,这在许多方面意味着您根本不需要使用旧的DirectX SDK。特别是,Direct3D、DirectSound、DirectInput等在Windows 8.x SDK中都具有适当的头文件和库文件

    DirectX SDK非常受人尊敬,因此缺少了一些旧的东西:没有DirectMusic播放、DirectPlay等。我有一篇文章提供了DirectX SDK中所有东西的完整清单

    变得复杂的是XAudio和XInput。XAudio 2.8和XInput 1.4都是Windows 8.x操作系统的一部分,但在Windows 7上不可用。如果您的目标是Windows 7的“底层”,则必须使用XAudio 2.7和XInput 1.3或XInput 9.1.0。这个有点混乱的故事包含在两篇博文中:一篇为,另一篇为。好消息是,XInput的大部分使用实际上在XInput 9.1.0中是可行的,XInput 9.1.0是从windowsvista开始的Windows操作系统的一部分。XAudio“底层”需要混合使用现代Windows 8.x SDK和传统DirectX SDK,再加上必须使用传统DirectX SDK REDIST(DirectSetup)

    出现“运行时”错误而不是“编译时”错误的根本原因是,您没有为Windows 7将_WIN32_WINNT设置为0x0601(或为Windows Vista设置为0x0600)。如果有,Windows 8.x SDK中的XINPUT.H头将自动使用XINPUT 9.1.0版本,而Windows 8.x SDK中的XAUIOD2.H头将出错,并告诉您它不适用于Windows 7


    最后,我清理了许多旧的Direct SDK示例并将其重新发布到,这样它们就不需要旧的DirectX SDK了。

    所以…您不能使用XAudio2开发在win 7和win 8之间工作的代码??我很困惑…2010年6月SDK中使用XAudio2的应用程序会在Win8上运行吗?我认为,这是可能的