2013-04-11 111 views
0

我想與DirectX SDK取得聯繫。我設法安裝它,創造了一個新Win32 Console Project,並添加以下行LNK2019 XAudio2Create - 未解決的符號

#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 -object,但我得到LNK2019 - unresolved external symbol "[email protected]"

Here是文檔。

謝謝你的任何提示。

+0

XAudio2Create不是COM,它是一個標準的DLL導出。您*需要*與Xaudio2.lib鏈接。 – 2013-04-11 14:32:49

+0

請閱讀我提供的鏈接下的「備註」部分。另外SDK文件夾中沒有'.lib'。 – 2013-04-11 14:37:46

+0

我不知道他們是什麼意思。僅使用COM將需要一個CLSID(我沒有看到任何提供的.h)。 xaudio2.lib可用於Windows 8 SDK中的%Program Files%\ Windows Kits \ 8.0 \ Lib \ win8 \ um。 – 2013-04-11 14:50:39

回答

0

XAudio2Create不是COM,它是一個標準的DLL導出,所以你確實需要鏈接到Xaudio2.lib。該庫可在%Program Files%\Windows Kits\8.0\Lib\win8\um(與Windows 8 SDK一起安裝)中提供。

+0

Windows 8.x中的XAudio是2.8版本,它不再使用COM來實例化它。 XAudio 2.7及更早版本(適用於Windows 7及更早版本)請使用COM。請參閱[此處](https://msdn.microsoft.com/en-us/library/windows/desktop/ee415802%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396)瞭解更多信息。 – Sam 2016-01-28 10:51:29