关于Direct Show 找不到dshow.h的问题
2008-02-07 14:19
162 查看
试验了几天,看来DirectShow真的是从DirectX中分离出去了,可以装一个DirectX 的Extract的包,里面就是DirectShow,也可以装一个Platform SDK,里面同样也包含DirectShow。
我们的集成开发环境选择了Visual C++ 6.0 With SP6,但默认情况下,它不包括DirectShow的开发包。为此,我专门上微软的网站下载了DirectX SDK(April 2007版),但安装完成后,在编程中依然发现说找不到Dshow.h的头文件。开始以为是环境没配置好,但发现配置好环境后,问题依旧。搜索整个硬盘,确实是不存在这个文件。
查阅相关的资料后,得出以下的结论:现在的DirectShow SDK 不被整合在DirectX SDK中而是以Extras 的形式发布.DirectShow SDK的最后一个版本是在2005.2版的DirectX SDK Extras中。
也就是说DirectShow从DirectX中分离出去了,需要额外的安装。可以安装DirectX Extras,也可以安装一个Platform SDK,该SDK包含有DirectShow的部分。
安装好后,其实主要是解压释放。我们需要在VC的选项里设置一下。在Tools->Option的选项卡Directories中增加相应项目。在Include files增加DirectX,DirectShow的Include路径,在Library files中增加DirectX,DirectShow的Lib路径。很重要的一点就是这些路径必须要放置在原有库文件路径后面,因为它的搜索顺序是从上到下,因为这些DirectX,DirectShow的库文件中要调用到系统基本的库,但这些库由于在顺序在它们之后,未被初始化,会造成引用错误,切记。
环境配置好之后,开始编程。编写完相关代码后,在运行时出现以下错误:
2007/04/27
--------------------Configuration: MediaPlayer - Win32 (WCE x86) Release--------------------
Linking...
MediaPlayerDlg.obj : error LNK2019: unresolved external symbol _CLSID_FilterGraph referenced in function "protected: void __thiscall CMediaPlayerDlg::OnPlay(void)" (?OnPlay@CMediaPlayerDlg@@IAEXXZ)
MediaPlayerDlg.obj : error LNK2019: unresolved external symbol _IID_IGraphBuilder referenced in function "protected: void __thiscall CMediaPlayerDlg::OnPlay(void)" (?OnPlay@CMediaPlayerDlg@@IAEXXZ)
X86Rel/MediaPlayer.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
MediaPlayer.exe - 3 error(s), 0 warning(s)
从反馈信息上看,是由于链接库有问题造成的。经过调试,解决办法是要在Project ->Setting里的Link里增加一个库文件:strmiids.lib。
我们的集成开发环境选择了Visual C++ 6.0 With SP6,但默认情况下,它不包括DirectShow的开发包。为此,我专门上微软的网站下载了DirectX SDK(April 2007版),但安装完成后,在编程中依然发现说找不到Dshow.h的头文件。开始以为是环境没配置好,但发现配置好环境后,问题依旧。搜索整个硬盘,确实是不存在这个文件。
查阅相关的资料后,得出以下的结论:现在的DirectShow SDK 不被整合在DirectX SDK中而是以Extras 的形式发布.DirectShow SDK的最后一个版本是在2005.2版的DirectX SDK Extras中。
也就是说DirectShow从DirectX中分离出去了,需要额外的安装。可以安装DirectX Extras,也可以安装一个Platform SDK,该SDK包含有DirectShow的部分。
安装好后,其实主要是解压释放。我们需要在VC的选项里设置一下。在Tools->Option的选项卡Directories中增加相应项目。在Include files增加DirectX,DirectShow的Include路径,在Library files中增加DirectX,DirectShow的Lib路径。很重要的一点就是这些路径必须要放置在原有库文件路径后面,因为它的搜索顺序是从上到下,因为这些DirectX,DirectShow的库文件中要调用到系统基本的库,但这些库由于在顺序在它们之后,未被初始化,会造成引用错误,切记。
环境配置好之后,开始编程。编写完相关代码后,在运行时出现以下错误:
2007/04/27
--------------------Configuration: MediaPlayer - Win32 (WCE x86) Release--------------------
Linking...
MediaPlayerDlg.obj : error LNK2019: unresolved external symbol _CLSID_FilterGraph referenced in function "protected: void __thiscall CMediaPlayerDlg::OnPlay(void)" (?OnPlay@CMediaPlayerDlg@@IAEXXZ)
MediaPlayerDlg.obj : error LNK2019: unresolved external symbol _IID_IGraphBuilder referenced in function "protected: void __thiscall CMediaPlayerDlg::OnPlay(void)" (?OnPlay@CMediaPlayerDlg@@IAEXXZ)
X86Rel/MediaPlayer.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
MediaPlayer.exe - 3 error(s), 0 warning(s)
从反馈信息上看,是由于链接库有问题造成的。经过调试,解决办法是要在Project ->Setting里的Link里增加一个库文件:strmiids.lib。
相关文章推荐
- 关于Direct Show 找不到dshow.h的问题
- 关于Direct Show 找不到dshow.h的问题
- 关于Direct Show 找不到dshow.h的问题
- 关于FriendlyARM--Smart210--Android4.0.3设备在为windows 7下使用ADB命令提示找不到设备的问题
- 关于编译或运行找不到包的问题
- 关于“system”: 找不到标识符 的问题
- 关于MyEclipse找不到AWTUtilities的问题
- 关于AndroidStudio类中找不到HorizontalScrollView的问题
- 关于Genymotion 启动后 Android studio 找不到设备的问题(补图)
- 关于kettle加载job找不到转换文件路径的问题解决
- 关于idea中有些时候代码找不到的问题
- 关于JAVA文件都在没问题,没有错误提示波浪线,但编译时候提示找不到对应包的问题
- 关于struts2 404 action找不到问题
- 关于ROS找不到package的问题
- 关于Tomcat服务器中使用jsp找不到图片存放路径的问题
- 关于unity2017上找不到windows store的问题
- 关于eclipse 不编译或者找不到*.class的问题
- 关于include标签导致js路径找不到的问题分析及解决
- 关于C++声明iterator时出现找不到namespace的问题
- 关于cocos2d在Mac上用Jni引入<jni.h>头文件找不到的问题