LNK2019 XAudio2Create - неразрешенный символ

Я пытаюсь связаться с DirectX SDK. Мне удалось установить его, создал новый Win32 Console Project и добавил следующие строки

#include <iostream>
#include <xaudio2.h>

int main(int argc, char *argv[]){
IXAudio2* pXAudio = 0;
IXAudio2MasteringVoice *pXAudioMasterVoice = 0;
HRESULT hr;

CoInitializeEx(NULL, COINIT_MULTITHREADED);

hr = XAudio2Create(&pXAudio, 0, XAUDIO2_DEFAULT_PROCESSOR);
if(FAILED(hr)){
    CoUninitialize();
    return hr;
}

hr = pXAudio->CreateMasteringVoice(&pXAudioMasterVoice);
if(FAILED(hr)){
    pXAudio->Release();
    CoUninitialize();
    return hr;
}

CoUninitialize();
std::cout << "Done!" << std::endl;
}

В документации сказано, что нет xaudio2.lib ссылаться на, но это COM-объект, но я получаю LNK2019 - unresolved external symbol "__imp__XAudio2Create@12"

Вот документация.

Спасибо за любые подсказки.

2 ответа

Решение

XAudio2Create - это не COM, это стандартный экспорт DLL, поэтому вам нужно связать его с Xaudio2.lib. Эта библиотека доступна в %Program Files%\Windows Kits\8.0\Lib\win8\um (устанавливается вместе с Windows 8 SDK).

Очень поздно для вечеринки, но я заставил это работать, следуя приведенным здесь примерам Windows и убедившись, что мои включения таковы:

#include <xaudio2.h>
#pragma comment(lib,"xaudio2.lib")
Другие вопросы по тегам