关于DirectShow中Souce Filter开发的一个问题,求教!

时间:2022-06-07 18:24:38
用的是<DirectShow实务精选>的一个源码,能通过编译,但链接的时候出错,提示为:
CQQOutPin.obj : error LNK2001: unresolved external symbol "protected: __thiscall CSourceSeeking::CSourceSeeking(char const *,struct IUnknown *,long *,class CCritSec *)" (??0CSourceSeeking@@IAE@PBDPAUIUnknown@@PAJPAVCCritSec@@@Z)
CQQOutPin.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CSourceSeeking::GetTimeFormatA(struct _GUID *)" (?GetTimeFormatA@CSourceSeeking@@UAGJPAU_GUID@@@Z)
如何解决啊?

10 个解决方案

#1


缺少头文件或者库!你在VC中设置了DirectX SDK的路径了吗?

#2


设置了的.
怎么样才能在帖子里加附件的,我把源码加上.

#3


1.CSDN不支持附件上传
2.<DirectShow实务精选>有无提供相关的.lib
3.查看源码中有无
CSourceSeeking::CSourceSeeking(char const *,struct IUnknown *,long *,class CCritSec *)
的实现

#4


你告诉我是哪一个例子就可以了,如果你没有修改的话,俺有源代码。如果你修改了,请发到:xiaqingqi@broadxent.com.cn

#5


回vccleaner:
是实现自定义格式文件播放的那个例子 \...\《DirectShow开发指南》\SourceCodes\Appendix_D\FilterQQSource ,目前没有改代码.
我的任务是做相关的修改,但是现在这个例子都还实现不了.

#6


该回复被版主删除

#7


#define _UNICODE

#8


是实现自定义格式文件播放的那个例子 \...\《DirectShow开发指南》\SourceCodes\Appendix_D\FilterQQSource ,目前没有改代码.
我的任务是做相关的修改,但是现在这个例子都还实现不了.
=============================
俺的《DS开发指南》的源代码中怎么没有你所说的那个源代码?应该是《DS实务精选》吧!呵呵。
你应该按照《DS实务精选》的第1章,说的那样编译DirectX SDK下的工程,即BaseClass工程中的库,在VC的IDE中设置路径。我就是这么做的,我的编译不存在问题!

#9


CQQOutPin.obj : error LNK2001: unresolved external symbol "protected: __thiscall CSourceSeeking::CSourceSeeking(char const *,struct IUnknown *,long *,class CCritSec *)" (??0CSourceSeeking@@IAE@PBDPAUIUnknown@@PAJPAVCCritSec@@@Z)
CQQOutPin.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CSourceSeeking::GetTimeFormatA(struct _GUID *)" (?GetTimeFormatA@CSourceSeeking@@UAGJPAU_GUID@@@Z)


????


不是差什么lib的问题。

而是有两个成员函数没提供实现。

#10


因为定义的是TCHAR,但只实现了_UNICODE方面,所以会出现找不到的问题
char const *
GetTimeFormatA

#1


缺少头文件或者库!你在VC中设置了DirectX SDK的路径了吗?

#2


设置了的.
怎么样才能在帖子里加附件的,我把源码加上.

#3


1.CSDN不支持附件上传
2.<DirectShow实务精选>有无提供相关的.lib
3.查看源码中有无
CSourceSeeking::CSourceSeeking(char const *,struct IUnknown *,long *,class CCritSec *)
的实现

#4


你告诉我是哪一个例子就可以了,如果你没有修改的话,俺有源代码。如果你修改了,请发到:xiaqingqi@broadxent.com.cn

#5


回vccleaner:
是实现自定义格式文件播放的那个例子 \...\《DirectShow开发指南》\SourceCodes\Appendix_D\FilterQQSource ,目前没有改代码.
我的任务是做相关的修改,但是现在这个例子都还实现不了.

#6


该回复被版主删除

#7


#define _UNICODE

#8


是实现自定义格式文件播放的那个例子 \...\《DirectShow开发指南》\SourceCodes\Appendix_D\FilterQQSource ,目前没有改代码.
我的任务是做相关的修改,但是现在这个例子都还实现不了.
=============================
俺的《DS开发指南》的源代码中怎么没有你所说的那个源代码?应该是《DS实务精选》吧!呵呵。
你应该按照《DS实务精选》的第1章,说的那样编译DirectX SDK下的工程,即BaseClass工程中的库,在VC的IDE中设置路径。我就是这么做的,我的编译不存在问题!

#9


CQQOutPin.obj : error LNK2001: unresolved external symbol "protected: __thiscall CSourceSeeking::CSourceSeeking(char const *,struct IUnknown *,long *,class CCritSec *)" (??0CSourceSeeking@@IAE@PBDPAUIUnknown@@PAJPAVCCritSec@@@Z)
CQQOutPin.obj : error LNK2001: unresolved external symbol "public: virtual long __stdcall CSourceSeeking::GetTimeFormatA(struct _GUID *)" (?GetTimeFormatA@CSourceSeeking@@UAGJPAU_GUID@@@Z)


????


不是差什么lib的问题。

而是有两个成员函数没提供实现。

#10


因为定义的是TCHAR,但只实现了_UNICODE方面,所以会出现找不到的问题
char const *
GetTimeFormatA