- UID
- 1
- 精华
- 245
- 积分
- 75963
- 威望
- 744 点
- 宅币
- 24263 个
- 贡献
- 46222 次
- 宅之契约
- 0 份
- 最后登录
- 2024-4-30
- 在线时间
- 2298 小时
- QQ
用户组: 管理员
一只技术宅
- UID
- 1
- 精华
- 245
- 威望
- 744 点
- 宅币
- 24263 个
- 贡献
- 46222 次
- 宅之契约
- 0 份
- 在线时间
- 2298 小时
- 注册时间
- 2014-1-26
|
这个东西编译出来可以得到“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就不导出了。。 |
|