2013-04-11 109 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