0

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
4

2 に答える 2

0

Google は気にしないでください:ドキュメントを使用してください:

S_OK成功した場合はエラー コードを返します。XAudio2 固有のエラー コードの説明については、 「 XAudio2 エラー コード」を参照してください。

そのエラー コードを確認して、何が起こっているのかを確認してください。

于 2014-01-10T02:49:06.447 に答える
0

CoInitializeEx(NULL, COINIT_MULTITHREADED);わかりました...コードの前を忘れました。今それは戻ってきますS_OK

于 2014-01-10T04:19:00.683 に答える