关于在directshow中无法解析的外部符号的问题

来源:互联网 发布:mac版本怎么看 编辑:程序博客网 时间:2024/05/03 03:28
初学者在directshow中经常会遇到象下面这样的
无法解析的外部符号
"public: virtual long __stdcall CBaseFilter::QueryVendorInfo(wchar_t * *)" (?QueryVendorInfo@CBaseFilter@@UAGJPAPA_W@Z)
无法解析的外部符号 "public:  virtual long __stdcall CBaseFilter::JoinFilterGraph(struct IFilterGraph *,wchar_t const *)" (?JoinFilterGraph@CBaseFilter@@UAGJPAUIFilterGraph@@PB_W@Z)
无法解析的外部符号 "public:  virtual long __stdcall CBaseFilter::FindPin(wchar_t const *,struct IPin * *)" (?FindPin@CBaseFilter@@UAGJPB_WPAPAUIPin@@@Z)

出现这种问题一般都是遇接的strmbase.lib库不对,比如当前工程是Release版,你连接了一个Debug版的库,或者连接了一个Debug Unicode版的库。

另个一种情况是BaseClasses如果是用VC6编译的,工程用的是VS2003或者VS2005,即使你的版本连接的对也会有这种问题,只需用VS2003或者VS2005将BaseClasses重新编译一个对应的版本就行了。造成这种问题的原因是VS2003或者VS2005会的属性设置里面(项目->属性->配置属性->c/c++->语言)将wchar_t设置为内置字符,而VS6没有这个设置。