初学者在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没有这个设置。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lemon_wei/archive/2008/01/24/2063628.aspx

posted on 2010-05-27 19:29  dan VC 之路  阅读(1375)  评论(0编辑  收藏  举报