高分求救!一个DirectShow的编译连接错误

pisces2003 2003-08-22 10:52:13
报错信息如下:
Linking...
Creating library Debug/HqAudMx.lib and object Debug/HqAudMx.exp
CMixedOutputPin.obj : error LNK2001: unresolved external symbol "public: __thiscall CTransInPlaceOutputPin::CTransInPlaceOutputPin(char *,class CTransInPlaceFilter *,long *,unsigned short const *)" (??0CTransInPlaceOutputPin@@QAE@PADPAVCTransInPlace
Filter@@PAJPBG@Z)
CMixingPassThru.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CPosPassThru::GetTimeFormatA(struct _GUID *)" (?GetTimeFormatA@CPosPassThru@@UAGJPAU_GUID@@@Z)
CMixingPassThru.obj : error LNK2001: unresolved external symbol "public: __thiscall CPosPassThru::CPosPassThru(char const *,struct IUnknown *,long *,struct IPin *)" (??0CPosPassThru@@QAE@PBDPAUIUnknown@@PAJPAUIPin@@@Z)
FilterAudioMixer.obj : error LNK2001: unresolved external symbol "public: __thiscall CTransInPlaceInputPin::CTransInPlaceInputPin(char *,class CTransInPlaceFilter *,long *,unsigned short const *)" (??0CTransInPlaceInputPin@@QAE@PADPAVCTransInPlaceFi
lter@@PAJPBG@Z)
../Builds/Debug/HqAudMx.ax : fatal error LNK1120: 4 unresolved externals
Error executing link.exe.

我安装的是DirectX9.0,并且按要求在VC中作了配置:

.在Tools->Options->Directories下include files加入了c:\dxsdk\include和C:\DXSDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES,并且位置在最上
.在Tools->Options->Directories下library files加入了c:\dxsdk\lib,并且位置在最上。
.在project->Setting->link object/libaries modules中:strmbasd.lib msvcrtd.lib quartz.lib vfw32.lib winmm.lib kernel32.lib advapi32.lib version.lib largeint.lib user32.lib gdi32.lib comctl32.lib ole32.lib olepro32.lib oleaut32.lib uuid.lib
这样配置应该没错吧?而且我在编译DirectShow自带的例子程序都不会错啊。
实在是不知道错在哪里?还望这里的大虾指点迷津。thanx!
...全文
59 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
happydeer 2003-09-05
  • 打赏
  • 举报
回复
pisces2003 (我心飞翔) :

你是blueice的吧?

前段时间太忙,现在好一点了。你把你的代码发给我,我给你看一下!
dajunj 2003-09-03
  • 打赏
  • 举报
回复
还应该在Tools->Options->Directories下library files加入DXSDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\DEBUG
pisces2003 2003-09-01
  • 打赏
  • 举报
回复
这些方法怎么试了都没用?:(
xielm 2003-08-26
  • 打赏
  • 举报
回复
Release:
add lib path = C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Release\
add link = strmbase.lib quartz.lib uuid.lib winmm.lib
Debug:
add lib path = C:\DXSDK\Samples\C++\DirectShow\BaseClasses\Debug\
add link = strmbasd.lib quartz.lib uuid.lib winmm.lib
flyingeagle 2003-08-22
  • 打赏
  • 举报
回复
从抱错的信息来看,是strmbasd.lib没有连接对的问题,你应该好好看看能运行的例子,里面有好多编译开关都要设置对.要仔细的比较啊.
zhangjianyu 2003-08-22
  • 打赏
  • 举报
回复
把strmbasd.lib换成strmiids.lib试试
gxqcdit 2003-08-22
  • 打赏
  • 举报
回复
要不你干脆将transip.h放到当前目录试试.
pisces2003 2003-08-22
  • 打赏
  • 举报
回复
我已经仔细比较过了,还是找不到错在哪?
困惑ing :(

2,541

社区成员

发帖
与我相关
我的任务
社区描述
专题开发/技术/项目 多媒体/流媒体开发
社区管理员
  • 多媒体/流媒体开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧