首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在VisualStudioCommunity2019解决方案中成功初始化XAudio2

在VisualStudioCommunity2019解决方案中成功初始化XAudio2
EN

Stack Overflow用户
提问于 2020-12-26 03:44:32
回答 1查看 365关注 0票数 1

来自Windows中的“如何初始化XAudio2

  • Microsoft 10 SDK
  • Visual 2019社区
  • Microsoft.XAudio2.安装package软件包
  • 英特尔(R)奔腾(R) CPU 4415Y @ 1.60GHz x64
  • 用于64位操作系统的Windows 10 Pro

以下代码示例:

代码语言:javascript
运行
复制
#include <iostream>
#include <xaudio2.h>
HRESULT init_audio(void)
{
    IXAudio2* pXAudio2 = NULL;
    HRESULT hr;
    if (FAILED(hr = XAudio2Create(&pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR)))
        return hr;
    IXAudio2MasteringVoice* pMasterVoice = NULL;
    if (FAILED(hr = pXAudio2->CreateMasteringVoice(&pMasterVoice)))
        return hr;
    return hr;
}
int main()
{
    std::cout << "Hello World!\n";
    std::cout << std::hex << init_audio() << std::endl;
}

直接进入一个新的控制台解决方案,在失败的CreateMasteringVoice和错误800401F0之后返回。

使用任何其他编译器(GNU、LLVM、Clang)都无法成功解析XAudio2.h。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-26 22:58:46

如果使用错误查找工具,您将看到800401F0转换为CO_E_NOTINITIALIZED

正如注释中所指出的,您必须首先初始化COM:

代码语言:javascript
运行
复制
HRESULT hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED );
if (FAILED(hr))
   // error

我在Microsoft页面上提交了一个编辑来注意这个事实。

您还应该查看音频DirectX工具包以获得详细的XAudio2示例代码。还有XAudio2在GitHub上的样本。

clang/LLVM v10适用于最新的Windows10SDK中的xaudio2.h和XAudio2Redist NuGet包头。请记住,如果不使用XAudio2Redist NuGet /lib,则需要手动集成MSBuild。否则,如果在Windows10SDK本身中使用xaudio2.h标头,则需要为Windows 8或更高版本设置_WIN32_WINNT

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65453464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档