读书人

关于DriectShow有关问题…

发布时间: 2012-11-04 10:42:41 作者: rapoo

关于DriectShow问题请教大家……
最近想最近做个播放器玩玩,就在网上找了些资料,发现想做功能强大的播放器要用DriectShow做比较好,大家都怎么说……
我找了本DirectShow开发指南看,已经看到了第四章了,我也按书上说装最新的DirectX SDK,头文件和LIB库的路径都设置好了,但是编译书上例子时,报了一堆

D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\ctlutil.h(437) : error C2504: 'IBasicVideo2' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(953) : error C2504: 'IPinFlowControl' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(984) : error C2061: syntax error : identifier 'IGraphConfig'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2143: syntax error : missing ';' before '*'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2501: 'IGraphConfig' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2501: 'm_pGraphConfig' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1342) : error C2504: 'IMemAllocatorCallbackTemp' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2143: syntax error : missing ';' before '*'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2501: 'IMemAllocatorNotifyCallbackTemp' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2501: 'm_pNotify' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1508) : error C2061: syntax error : identifier 'IMemAllocatorNotifyCallbackTemp'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\sysclock.h(20) : error C2504: 'IAMClockAdjust' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\streams.h(174) : fatal error C1083: Cannot open include file: 'audevcod.h': No such file or directory
CTitleOverlayProp.cpp
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\ctlutil.h(437) : error C2504: 'IBasicVideo2' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(953) : error C2504: 'IPinFlowControl' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(984) : error C2061: syntax error : identifier 'IGraphConfig'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2143: syntax error : missing ';' before '*'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2501: 'IGraphConfig' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2501: 'm_pGraphConfig' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1342) : error C2504: 'IMemAllocatorCallbackTemp' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2143: syntax error : missing ';' before '*'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2501: 'IMemAllocatorNotifyCallbackTemp' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2501: 'm_pNotify' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1508) : error C2061: syntax error :
CPixelRGB8.cpp
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(953) : error C2504: 'IPinFlowControl' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(984) : error C2061: syntax error : identifier 'IGraphConfig'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2143: syntax error : missing ';' before '*'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2501: 'IGraphConfig' : missing storage-class or type specifiers


D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2501: 'm_pGraphConfig' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1342) : error C2504: 'IMemAllocatorCallbackTemp' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2143: syntax error : missing ';' before '*'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2501: 'IMemAllocatorNotifyCallbackTemp' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2501: 'm_pNotify' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1508) : error C2061: syntax error : identifier 'IMemAllocatorNotifyCallbackTemp'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\sysclock.h(20) : error C2504: 'IAMClockAdjust' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\streams.h(174) : fatal error C1083: Cannot open include file: 'audevcod.h': No such file or directory
CSysTimeOverlayController.cpp
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\ctlutil.h(437) : error C2504: 'IBasicVideo2' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(953) : error C2504: 'IPinFlowControl' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(984) : error C2061: syntax error : identifier 'IGraphConfig'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2143: syntax error : missing ';' before '*'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2501: 'IGraphConfig' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1069) : error C2501: 'm_pGraphConfig' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1342) : error C2504: 'IMemAllocatorCallbackTemp' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2143: syntax error : missing ';' before '*'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2501: 'IMemAllocatorNotifyCallbackTemp' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1446) : error C2501: 'm_pNotify' : missing storage-class or type specifiers
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(1508) : error C2061: syntax error : identifier 'IMemAllocatorNotifyCallbackTemp'
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\sysclock.h(20) : error C2504: 'IAMClockAdjust' : base class undefined
D:\WIN XP\DIRECT SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\streams.h(174) : fatal error C1083: Cannot open include file: 'audevcod.h': No such file or directory
CAutoFont.cpp
Generating Code...
Error executing cl.exe.

上面的错误……

我仔细看了下报错的提示,基本上都是接口函数的报错提示……
我在想是不是,还有哪里没设置好?

工程师重网上下载下来的,工程里的设置应该没什么问题,然道是BaseClasses工程没编译好的问题吗?
我用VS2008编译BaseClasses工程时,报了一个lib库没找到的提示,我就在DirectX SDK安装目录下搜索,确实没有那个lib库
,然后我就在设置里把那个连接那个lib库的那段给删了,然后就编译通过了,我现在在想是这个原因吗?


求大侠帮帮忙!

[解决办法]
应该不是,DX SDK我以前用过一次书籍里自带的代码,反正是编译不通。

读书人网 >VC/MFC

热点推荐