我提取了我的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.lib
和Quartz.lib
,但仍然无法正常工作。
我知道SDK已正确安装在我的系统上,因为我可以编译另一个使用DirectShow的应用程序,但是我发现在这种特殊情况下不需要依赖。
那么,有谁知道我应该使用哪个库来编译我的应用程序?
答案 0 :(得分:0)
显然,dmoguids.lib
库导出了DMO GUID,CLSID_DMOWrapperFilter
是其中的一部分(即使它在dmodshow.h
中进行了定义)。
实际上,DMO GUIDs的文档页面显示:
这些GUID在头文件Dmoreg.h中定义,并由Dmoguids.lib库导出。