在 Visual Studio 社区 2019 解决方案中成功初始化 XAudio2
Successfully initialize XAudio2 in a Visual Studio Community 2019 Solution
来自 Windows 开发人员中的“How to Initialize XAudio2”
- 微软Windows 10 SDK
- Visual Studio 2019 社区
- Microsoft.XAudio2.Redist 已安装 NuGet 包
- 英特尔(R) 奔腾(R) CPU 4415Y @ 1.60GHz x64
- Windows 10 Pro for Workstations 64 位操作系统
以下代码示例:
#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
后直接进入新的控制台解决方案 returns。
使用任何其他编译器(GNU、LLVM、Clang)无法成功解析 XAudio2.h。
如果您使用 错误查找工具,您会看到 800401F0
转换为 CO_E_NOTINITIALIZED
。
如评论中所述,您必须先初始化 COM:
HRESULT hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED );
if (FAILED(hr))
// error
I submitted an edit to note that fact on the Microsoft Docs page.
您还应该看看 DirectX Tool Kit for Audio for extensive XAudio2 sample code. There's also samples for XAudio2 on GitHub。
clang/LLVM for Windows v10 适用于最近 Windows 10 个 SDK 中的 xaudio2.h
,以及 XAudio2Redist NuGet 包 header。请记住,如果您不使用 MSBuild,则需要手动集成 XAudio2Redist NuGet include/lib。否则,如果您在 Windows 10 SDK 本身中使用 xaudio2.h
header,则需要为 Windows 8 或更高版本设置 _WIN32_WINNT
。
来自 Windows 开发人员中的“How to Initialize XAudio2”
- 微软Windows 10 SDK
- Visual Studio 2019 社区
- Microsoft.XAudio2.Redist 已安装 NuGet 包
- 英特尔(R) 奔腾(R) CPU 4415Y @ 1.60GHz x64
- Windows 10 Pro for Workstations 64 位操作系统
以下代码示例:
#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
后直接进入新的控制台解决方案 returns。
使用任何其他编译器(GNU、LLVM、Clang)无法成功解析 XAudio2.h。
如果您使用 错误查找工具,您会看到 800401F0
转换为 CO_E_NOTINITIALIZED
。
如评论中所述,您必须先初始化 COM:
HRESULT hr = CoInitializeEx( nullptr, COINIT_MULTITHREADED );
if (FAILED(hr))
// error
I submitted an edit to note that fact on the Microsoft Docs page.
您还应该看看 DirectX Tool Kit for Audio for extensive XAudio2 sample code. There's also samples for XAudio2 on GitHub。
clang/LLVM for Windows v10 适用于最近 Windows 10 个 SDK 中的 xaudio2.h
,以及 XAudio2Redist NuGet 包 header。请记住,如果您不使用 MSBuild,则需要手动集成 XAudio2Redist NuGet include/lib。否则,如果您在 Windows 10 SDK 本身中使用 xaudio2.h
header,则需要为 Windows 8 或更高版本设置 _WIN32_WINNT
。