XAudio2 create () не удалось

Когда я пытаюсь использовать 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

0

Решение

Не берите в голову Google: используйте документация:

Возвращает S_OK в случае успеха код ошибки в противном случае. Увидеть Коды ошибок XAudio2 для описания кодов ошибок, специфичных для XAudio2.

Просто проверьте этот код ошибки, чтобы узнать, что происходит.

0

Другие решения

Хорошо понял…
Я забыл CoInitializeEx(NULL, COINIT_MULTITHREADED); перед кодом.
Теперь возвращается S_OK!

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector