XAudio2 を使用しようとすると、XAudio2Create(...) 関数で既に失敗しています。(INITIALIZE はこの行に戻ります:if (FAILED(hr)) return false;
理由はわかりませんが、Google は directx 再頒布可能パッケージをインストールするように指示するだけで、実行しましたが何も変わりませんでした...何かアイデアはありますか?
これは基本的に MSDN のコードです。
IXAudio2* pXAudio2 = NULL;
bool INITIALIZE()
{
HRESULT hr = XAudio2Create(&pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR);
if (FAILED(hr)) return false;
.
.
.
}
私はこれを試しましたが、これらのエラーコードはどれも一致していないようです:
HRESULT hr = XAudio2Create(&pXAudio2, 0, XAUDIO2_DEFAULT_PROCESSOR);
std::cout << "hresult: " << hr << std::endl;
if (hr == XAUDIO2_E_DEVICE_INVALIDATED) std::cout << "XAUDIO2_E_DEVICE_INVALIDATED";
if (hr == XAUDIO2_E_INVALID_CALL) std::cout << "XAUDIO2_E_INVALID_CALL";
if (hr == XAUDIO2_E_XAPO_CREATION_FAILED) std::cout << "XAUDIO2_E_XAPO_CREATION_FAILED";
if (hr == XAUDIO2_E_XMA_DECODER_ERROR) std::cout << "XAUDIO2_E_XMA_DECODER_ERROR";
if (hr == S_OK) std::cout << "S_OK";
出力:
hresult: -2147221008