【DirectX SDK Extra】提示缺少Qedit.h问题 (转)

原文转自 http://blog.csdn.net/joeblackzqq/article/details/10944005

DirectX 9.0 SDK 开发包以及扩展包下载(February 2005) http://dev.csdn.net/article/62/62941.shtm。直接到微软官网下的话,需要validation确认。

http://download.microsoft.com/download/7/b/9/7b92308a-ec8d-4016-8d45-2f91dd130bf2/dxsdk_feb2005.exe

http://download.microsoft.com/download/d/9/1/d91c44b9-fbac-4e8e-bee1-4a75777923ec/dxsdk_feb2005_extras.exe

dshow.h找不到,下个dxsdk extras就可以了。

qedit.h里面dxtrans.h missing的问题很诡异,March2008的版本依然存在这个问题,看看这篇文章http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2617687&SiteID=1

①Remove anything to do with "dxtrans.h" and "IDXEffect" .

Say, for file "qedit.h"

//#include "dxtrans.h" -- Line 498

// IDxtCompositor //: public IDXEffect -- Line 837
// IDxtAlphaSetter //: public IDXEffect -- Line 1151
// IDxtJpeg //: public IDXEffect -- Line 1345
// IDxtKey //: public IDXEffect -- Line 1735

Now, everything compiles and works fine.

这篇介绍direcX的配置: http://hi.baidu.com/rain_yx/blog/item/f98d9112695a8fcac2fd782c.html

You can get by with less edits of qedit.h (commenting out the missing interfaces can be error prone).

Comment out the include of dxtrans.h.

Before you include qedit.h, add the following #defines:

#define

__IDxtCompositor_INTERFACE_DEFINED__

#define

__IDxtAlphaSetter_INTERFACE_DEFINED__

#define

__IDxtJpeg_INTERFACE_DEFINED__

#define

__IDxtKey_INTERFACE_DEFINED__

#include

<qedit.h>

=====================================================================

以下为个人整理:

最初提示缺少Qedit.h, 这个需要安装DirectX SDK Extra, 下载后解压到一个临时目录,里面的主要内容是一个文件夹:Extras。我将它与我的DirectX SDK中的Extras对比了下,发现就是多了一个目录:DirectShow,将里面的DirectShow复制到DirectX SDK安装目录下的Extras下,里面就有qedit.h文件。将“D:\opensource\DirectXSDK\Extras\DirectShow\Include”加入到工程的include目录中,提示变为:无法找到dxtrans.h文件,经网上搜索,找到答案:
在#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>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _IID_ISampleGrabberCB  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _IID_ICreateDevEnum  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _CLSID_SystemDeviceEnum  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _CLSID_VideoInputDeviceCategory  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _CLSID_SampleGrabber  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _MEDIATYPE_Video  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _MEDIASUBTYPE_RGB24  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _PIN_CATEGORY_PREVIEW  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _PIN_CATEGORY_CAPTURE  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _IID_IBaseFilter  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _IID_IGraphBuilder  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _CLSID_FilterGraph  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _IID_ICaptureGraphBuilder2  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _CLSID_CaptureGraphBuilder2  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _IID_IMediaControl  
1>CaptureVideo.obj : error LNK2001: 无法解析的外部符号 _IID_IVideoWindow  
1>D:\program\vc2010\testa\testa.exe : fatal error LNK1120: 16 个无法解析的外部命令

很明显,是缺少相应的lib库文件,随便找一个如“_IID_ISampleGrabberCB” 进行百度搜索,即可发现需要加上“strmiids.lib”。不过,添加这个lib文件前,需要将其库目录(D:\opensource\DirectXSDK\Extras\DirectShow\Lib\x86)添加到项目属性中。

时间: 2024-10-17 23:32:22

【DirectX SDK Extra】提示缺少Qedit.h问题 (转)的相关文章

安装psutil时提示缺少python.h头文件(作记录)

通过pip或者源码安装psutil,都会提示缺少python.h头文件,错误提示如下: ... psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory #include <Python.h> ^ compilation terminated. error: command 'gcc' failed with exit status 1 ... 出现此错误的原因是没有安装python-devel

DirectX SDK版本与Visual Studio版本

对于刚刚接触 DirectShow 的人来说,安装配置是一个令人头疼的问题,经常出现的情况是最基本的 baseclass 就无法编译.一开始我也为此费了很大的功夫,比如说修改代码.修改编译选项使其编译通过.因为大家 Visual Studio 的版本与 DirectShow 的版本各不相同,导致问题多种多样.网上的参考也不可尽信,往往花费了大量的时间和精力,程序仍没有编译通过,而丧失学习 DirectShow 的兴趣和信心.我在 Visual Stdio 6.0,2003,2005,2008 都

Android Studio 1.4 的那些折腾 - 最小 SDK 版本提示覆盖手机百分比

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 上图中,那个百分数: 即是选择当前最小 SDK 版本 4.0.3 所开发的应用支持的机会覆盖率, 有一行蓝字带下划线 "Help me

学习笔记一:关于directx sdk的安装于一些概念

关于directx sdk开发环境的安装: 在百度搜索了directx sdk,进入了微软的官网,下载了DXSDK_Jun10.exe 百度网盘:http://pan.baidu.com/s/1o6r3MDO 下载安装就可以了 VC++开发用的是VS2010 新建VS2010工程:win32项目,空项目 创建了空的win32项目后,首先要进行directx开发环境的设置 首先右键-工程-属性,在弹出的工程属性中选择VC++目录 这里要设置的是 包含目录 和 库目录 包含目录:D:\Program

WAMP安装提示缺少 msvcr100.dll文件解决方法

WAMP安装提示缺少wamp msvcr100.dll文件解决方法 因为wamp基于vs c++2010开发,需要提前安装这个组件才可以正常运行 微软官方组件下载地址: 32位:http://www.microsoft.com/download/en/details.aspx?id=8328 64位:http://www.microsoft.com/download/en/details.aspx?id=13523 最新版WAMP可能需要安装vs c++ 2012 http://www.micr

openwrt 运行程序时提示缺少libstdc++.so.6

解决方法比较简单,就是下载一个libstdc++.so.6文件,通过scp的方式发送到openwrt板子内的/lib/目录下就可以了. 下载地址在这儿:http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=164026 祝大家顺利.如果是编译过程出现问题,请参考本博客中得博文<openwrt编译程序时提示缺少libstdc++.so.6>

IE浏览器JS提示缺少对象的解决办法

前端文件中写了一个AJAX取城市列表的JS方法.一个检测表单输入的JS方法,还有一些其它的JS代码. 整个页面代码在chrome和火狐浏览器下一切正常.但是在IE浏览器下在取城市列表的JS方法中提示缺少对象,这个不太具体的报错一开始就让我头疼,因为在chrome等浏览器中是可以运行的,所以初步估计是代码冲突,于是一段代码,一段代码的删,搞了一个小时,发现问题出在检查表单的JS方法里: 表单中有一个选择产品分类的下拉框,这个下拉框的name和ID都定义为:class ,然后在检查表单的JS方法里取

[转载]DirectX SDK (June 2010)安装错误S1023,解决方法

导致这个错误的原因是在安装DirectX SDK (June 2010)之前.我就安装了VS2010 . 所以也就安装了: Microsoft Visual C++ 2010 x86 Redistributable Microsoft Visual C++ 2010 x64 Redistributable 而DirectX SDK (June 2010)会在安装的过程中再次安装.囧 所以解决的办法就是在安装DirectX SDK (June 2010)之前先将以上两个程序卸载. 在运行中执行以下

银河麒麟操作系统编译缺少kdeamon.h文件

安装银河麒麟操作系统过程中 编译ltp时,如果报缺少kdeamon.h文件 那么就要降级libc6-dev版本至2.21或者升级ltp版本解决,或者将ltp的makefile文件的kdeamon.h的行注释再编译 如果遇到了上述情况就尝试一下这个解决方法吧!! 更多内容欢迎猛戳:www.kylinos.cn