在Windows7和Visual Studio 2010中编译DirectShow例程GrabBitmaps的问题
2012-07-29 21:11
302 查看
一开始提示的编译错误是:
fatal error C1083: 无法打开包括文件:“dxtrans.h”: No such file or directory
看了一下是在qedit.h中引用了这个头文件,翻遍了DirectX SDK也没有找到dxtrans.h这个头文件,上网查了一下是在DirectShow的变迁过程中,新版本中已经去掉了这个头文件,难道一定要安装旧版的DirectX SDK吗?可以用如下的折中解决方案:
在#include <qedit.h>这一句的前面添加如下代码:
#pragma include_alias( "dxtrans.h", "qedit.h" )
#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__
此时再编译可能会出现如下链接错误,
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB24
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB24
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _MEDIATYPE_Video
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _CLSID_FilterGraph
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _CLSID_AsyncReader
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _CLSID_SampleGrabber
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_ISampleGrabberCB
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IBaseFilter
1>strmbasd.lib(wxdebug.obj) : error LNK2019: 无法解析的外部符号 _IID_IBaseFilter,该符号在函数 "void __stdcall DisplayType(char *,struct _AMMediaType const *)" (?DisplayType@@YGXPADPBU_AMMediaType@@@Z) 中被引用
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IFileSourceFilter
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IMediaSeeking
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IVideoWindow
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IMediaControl
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IMediaEvent
1>strmbasd.lib(mtype.obj) : error LNK2001: 无法解析的外部符号 _FORMAT_WaveFormatEx
1>strmbasd.lib(mtype.obj) : error LNK2001: 无法解析的外部符号 _MEDIATYPE_Audio
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 _MEDIATYPE_Audio
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 _IID_IPin
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_MPEG1Packet
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 _FORMAT_VideoInfo
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_Overlay
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_ARGB32
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB32
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB555
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB565
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB8
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB4
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB1
这是因为缺少了一个链接库,在链接附加项里面添加strmiids.lib即可。
另外,好像DirectX SDK (Aug 2007)这个版本比较稳定和常用。
fatal error C1083: 无法打开包括文件:“dxtrans.h”: No such file or directory
看了一下是在qedit.h中引用了这个头文件,翻遍了DirectX SDK也没有找到dxtrans.h这个头文件,上网查了一下是在DirectShow的变迁过程中,新版本中已经去掉了这个头文件,难道一定要安装旧版的DirectX SDK吗?可以用如下的折中解决方案:
在#include <qedit.h>这一句的前面添加如下代码:
#pragma include_alias( "dxtrans.h", "qedit.h" )
#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__
此时再编译可能会出现如下链接错误,
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB24
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB24
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _MEDIATYPE_Video
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _CLSID_FilterGraph
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _CLSID_AsyncReader
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _CLSID_SampleGrabber
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_ISampleGrabberCB
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IBaseFilter
1>strmbasd.lib(wxdebug.obj) : error LNK2019: 无法解析的外部符号 _IID_IBaseFilter,该符号在函数 "void __stdcall DisplayType(char *,struct _AMMediaType const *)" (?DisplayType@@YGXPADPBU_AMMediaType@@@Z) 中被引用
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IFileSourceFilter
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IMediaSeeking
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IVideoWindow
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IMediaControl
1>GrabBitmaps.obj : error LNK2001: 无法解析的外部符号 _IID_IMediaEvent
1>strmbasd.lib(mtype.obj) : error LNK2001: 无法解析的外部符号 _FORMAT_WaveFormatEx
1>strmbasd.lib(mtype.obj) : error LNK2001: 无法解析的外部符号 _MEDIATYPE_Audio
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 _MEDIATYPE_Audio
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 _IID_IPin
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_MPEG1Packet
1>strmbasd.lib(wxdebug.obj) : error LNK2001: 无法解析的外部符号 _FORMAT_VideoInfo
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_Overlay
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_ARGB32
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB32
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB555
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB565
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB8
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB4
1>strmbasd.lib(amvideo.obj) : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB1
这是因为缺少了一个链接库,在链接附加项里面添加strmiids.lib即可。
另外,好像DirectX SDK (Aug 2007)这个版本比较稳定和常用。
相关文章推荐
- 在Windows7和Visual Studio 2010中编译DirectShow的例程AMCap的问题
- Visual Studio 2010崩溃重启问题(源文件编译崩溃)
- Visual Studio 2010崩溃重启问题(源文件编译崩溃)
- Visual Studio 2010下WorldWind编译问题集合
- Visual Studio 2010 编译 MongoDB C++ Client Driver(看这里,终于解决了编译问题,谢谢大神的分享)
- OPNET Modeler & Visual Studio 2010 环境下编译 Process Model 可能出现的问题
- 在visual studio 2010上编译一个项目时系统报错,提示了问题补充的错误信息
- Windows7使用Visual Studio 2010编译libpqxx 'copy' : return code '0x1'
- 在XP SP2下安装Visual Studio 2010 问题
- 问题解决——SolidWorks 已停止工作 (Windows7 + SolidWorks 2010 SP0.0)
- 解决Visual Studio 2010 右键菜单滚动问题的补丁
- visual studio 编译中的小问题
- [转] 在 Windows Server 2008 R2 下用 Visual Studio 2010 编译 Chrome 与 WebKit Chromium Port
- 关于 Visual Studio 2012 新建的网站项目在 Visual Studio 2010 中的兼容性问题
- 在windows7中,visual studioC++ 2010中 mschar插件的使用,MSCHRT20.OCX的注册,如何画曲线图、饼图
- 关于Visual Studio 2010的MSDN Library的问题
- 关于Visual Studio 2010与64位系统的问题
- 在windows7中,visual studioC++ 2010中 mschar插件的使用,MSCHRT20.OCX的注册,如何画曲线图、饼图
- 试用Visual Studio 2010时出现了问题
- 关于使Visual Studio 2005/2008/2010开发的MFC程序具有XP风格的问题