最近正在学习DirectX,在网上下载了一个视频播放器的源码后,发现出现很多的问题:都是dxsdk里的baseclasses里的文件编译时报的错误,问题像如下这样:
D:\PROGRAM FILES\DX9SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\ctlutil.h(437) : error C2504: 'IBasicVideo2' : base class undefined
D:\PROGRAM FILES\DX9SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(286) : error C2061: syntax error : identifier 'LONG_PTR'
D:\PROGRAM FILES\DX9SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES\amfilter.h(951) : error C2504: 'IPinFlowControl' : base class undefined
上述只是一部分的问题。
在网上搜了一把,最后发现是包含目录的顺序不对引起的。
dxsdk的include目录要在VC环境默认的include之前,像如下这样:
D:\Program Files\dx9sdk\Include
D:\PROGRAM FILES\DX9SDK\SAMPLES\C++\DIRECTSHOW\BASECLASSES
D:\Program Files\Microsoft Visual Studio\VC98\INCLUDE