- UID
- 1
- 精华
- 积分
- 76361
- 威望
- 点
- 宅币
- 个
- 贡献
- 次
- 宅之契约
- 份
- 最后登录
- 1970-1-1
- 在线时间
- 小时
|
这个东西编译出来可以得到“strmbase.lib”,用于DirectShow。VS自带了这个lib,但是只带了Release版本,而且貌似有BUG。
因此我将BaseClasses的源码重新编译了一遍,得到了没有BUG的、能编译出DEBUG版本的strmbasd.lib的VS2012的工程。
中间文件已删除。
解压后共22.4 MB
回复后可见哦。
如果不使用我重新编译的库,你可能会遇到如下的问题:- 1>XXXX.obj : error LNK2001: 无法解析的外部符号 "public: virtual long __stdcall CBaseRenderer::FindPin(wchar_t const *,struct IPin * *)" (?FindPin@CBaseRenderer@@UAGJPB_WPAPAUIPin@@@Z)
- 1>XXXX.obj : error LNK2001: 无法解析的外部符号 "public: virtual long __stdcall CBaseFilter::QueryVendorInfo(wchar_t * *)" (?QueryVendorInfo@CBaseFilter@@UAGJPAPA_W@Z)
- 1>XXXX.obj : error LNK2001: 无法解析的外部符号 "public: virtual long __stdcall CBaseVideoRenderer::JoinFilterGraph(struct IFilterGraph *,wchar_t const *)" (?JoinFilterGraph@CBaseVideoRenderer@@UAGJPAUIFilterGraph@@PB_W@Z)
- 1>XXXX.obj : error LNK2001: 无法解析的外部符号 "public: __thiscall CBaseVideoRenderer::CBaseVideoRenderer(struct _GUID const &,wchar_t *,struct IUnknown *,long *)" (??0CBaseVideoRenderer@@QAE@ABU_GUID@@PA_WPAUIUnknown@@PAJ@Z)
复制代码- strmbasd.lib(dllsetup.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
- strmbasd.lib(dllentry.obj) : error LNK2001: unresolved external symbol "class CFactoryTemplate * g_Templates" (?g_Templates@@3PAVCFactoryTemplate@@A)
复制代码 所以只要使用了我的库,就能解决以上问题。
这个问题据说是因为C++的优化把它内联掉了,然后在lib就不导出了。。 |
|