我应该链接哪个库以使用DirectX Media Object Wrapper筛选器?

时间:2018-08-03 14:30:50

标签: visual-c++ dependencies directx linker-errors

我提取了我的C ++应用程序的一小段代码:

#include <windows.h>
#include "Dshow.h"
#include "dmodshow.h"

int main()
{
    IBaseFilter         *audioWrapper = NULL;
    CoCreateInstance(CLSID_DMOWrapperFilter, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void**)&(audioWrapper));

    return 0;
}

在这里,我想创建一个DMO Wrapper Filter的实例。该应用程序编译良好,但是当我链接时,我得到:

  

错误LNK2001:无法解析的外部符号_CLSID_DMOWrapperFilter

但是,我已经按照the documentation中的说明在自己的依赖项中正确添加了Strmiids.libQuartz.lib,但仍然无法正常工作。

我知道SDK已正确安装在我的系统上,因为我可以编译另一个使用DirectShow的应用程序,但是我发现在这种特殊情况下不需要依赖。

那么,有谁知道我应该使用哪个库来编译我的应用程序?

1 个答案:

答案 0 :(得分:0)

显然,dmoguids.lib库导出了DMO GUID,CLSID_DMOWrapperFilter是其中的一部分(即使它在dmodshow.h中进行了定义)。

实际上,DMO GUIDs的文档页面显示:

  

这些GUID在头文件Dmoreg.h中定义,并由Dmoguids.lib库导出。