win7中使用VS10配置Direct Show
2017-08-05 17:45
513 查看
因为想统一代码,而且C++比较快,就想说先在Linux上跑MonoSlam看看,结果下了半天才把各种库下好,Cmake成功以后才发现虚拟机根本跑不动跑不动啊啊啊!!!!还好网上有大神重新写了C++的版本,结果又因为微软自己的D3D版本更新,从9以后Dshow就不再放在D3D的SDK里面,耐着性子我又下了win7.1
for .NET 4框架的SDK,结果结果...它竟然没有qedit.h
,后来只能本着治病救人死马当活马医破罐破摔的心态自己造qedit,网上各种找方案,终于找到个比较靠谱的老兄写了这么的东西
1.
http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/2ab5c212-5824-419d-b5d9-7f5db82f57cd/qedith-missing-in-current-windows-sdk-v70?forum=windowsdirectshowdevelopment
copy过来当做头文件放进去以后,发现竟然给我报ISampleGrabber的错误,一看明明已经定义啦,后来才看见是找不到入口点啊,然后又开始东拼西凑,发现是因为自定义的windows库版本低,还要改成)0X0501以上才可以
2. #define _WIN32_WINNT
0x0501(winbase中有原因)
但是,后来还是有各种连接错误,又找到大神的回答要在自己写的qedit中加上:
3.
MIDL_INTERFACE("6B652FFF-11FE-4fce-92AD-0266B5D7C78F")
ISampleGrabber;
MIDL_INTERFACE("0579154A-2B53-4994-B0D0-E773148EFF85")
ISampleGrabberCB;
东拼西凑以后,终于成功编译程序,可喜可贺可口可乐!!!!
PS:附上qedit源文件代码以备不时之需
#ifndef
__qedit_h__
#define
__qedit_h__
#pragma once
MIDL_INTERFACE("6B652FFF-11FE-4fce-92AD-0266B5D7C78F")
ISampleGrabber;
MIDL_INTERFACE("0579154A-2B53-4994-B0D0-E773148EFF85")
ISampleGrabberCB;
interface
ISampleGrabberCB:public
IUnknown
{
virtual STDMETHODIMP SampleCB(
double SampleTime, IMediaSample *pSample ) = 0;
virtual STDMETHODIMP BufferCB(
double SampleTime, BYTE *pBuffer, long BufferLen ) =
0;
};
static
const
IID IID_ISampleGrabberCB = {
0x0579154A, 0x2B53, 0x4994, { 0xB0, 0xD0, 0xE7, 0x73, 0x14, 0x8E,
0xFF, 0x85 } };
interface ISampleGrabber:
public IUnknown
{
virtual HRESULT
STDMETHODCALLTYPE SetOneShot( BOOL OneShot ) = 0;
virtual HRESULT
STDMETHODCALLTYPE SetMediaType( const AM_MEDIA_TYPE *pType ) =
0;
virtual HRESULT
STDMETHODCALLTYPE GetConnectedMediaType( AM_MEDIA_TYPE *pType ) =
0;
virtual HRESULT
STDMETHODCALLTYPE SetBufferSamples( BOOL BufferThem ) =
0;
virtual HRESULT
STDMETHODCALLTYPE GetCurrentBuffer( long *pBufferSize, long
*pBuffer ) = 0;
virtual HRESULT
STDMETHODCALLTYPE GetCurrentSample( IMediaSample **ppSample ) =
0;
virtual HRESULT
STDMETHODCALLTYPE SetCallback( ISampleGrabberCB *pCallback, long
WhichMethodToCallback ) = 0;
};
static
const
IID IID_ISampleGrabber = {
0x6B652FFF, 0x11FE, 0x4fce, { 0x92, 0xAD, 0x02, 0x66, 0xB5, 0xD7,
0xC7, 0x8F } };
static
const
CLSID CLSID_SampleGrabber = {
0xC1F400A0, 0x3F08, 0x11d3, { 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03,
0x9E, 0x37 } };
static
const
CLSID CLSID_NullRenderer = {
0xC1F400A4, 0x3F08, 0x11d3, { 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03,
0x9E, 0x37 } };
static
const
CLSID
CLSID_VideoEffects1Category = { 0xcc7bfb42, 0xf175, 0x11d1, { 0xa3,
0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59 } };
static
const
CLSID
CLSID_VideoEffects2Category = { 0xcc7bfb43, 0xf175, 0x11d1, { 0xa3,
0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59 } };
static
const
CLSID
CLSID_AudioEffects1Category = { 0xcc7bfb44, 0xf175, 0x11d1, { 0xa3,
0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59 } };
static
const
CLSID
CLSID_AudioEffects2Category = { 0xcc7bfb45, 0xf175, 0x11d1, { 0xa3,
0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59 } };
#endif
for .NET 4框架的SDK,结果结果...它竟然没有qedit.h
,后来只能本着治病救人死马当活马医破罐破摔的心态自己造qedit,网上各种找方案,终于找到个比较靠谱的老兄写了这么的东西
1.
http://social.msdn.microsoft.com/Forums/windowsdesktop/en-US/2ab5c212-5824-419d-b5d9-7f5db82f57cd/qedith-missing-in-current-windows-sdk-v70?forum=windowsdirectshowdevelopment
copy过来当做头文件放进去以后,发现竟然给我报ISampleGrabber的错误,一看明明已经定义啦,后来才看见是找不到入口点啊,然后又开始东拼西凑,发现是因为自定义的windows库版本低,还要改成)0X0501以上才可以
2. #define _WIN32_WINNT
0x0501(winbase中有原因)
但是,后来还是有各种连接错误,又找到大神的回答要在自己写的qedit中加上:
3.
MIDL_INTERFACE("6B652FFF-11FE-4fce-92AD-0266B5D7C78F")
ISampleGrabber;
MIDL_INTERFACE("0579154A-2B53-4994-B0D0-E773148EFF85")
ISampleGrabberCB;
东拼西凑以后,终于成功编译程序,可喜可贺可口可乐!!!!
PS:附上qedit源文件代码以备不时之需
#ifndef
__qedit_h__
#define
__qedit_h__
#pragma once
MIDL_INTERFACE("6B652FFF-11FE-4fce-92AD-0266B5D7C78F")
ISampleGrabber;
MIDL_INTERFACE("0579154A-2B53-4994-B0D0-E773148EFF85")
ISampleGrabberCB;
interface
ISampleGrabberCB:public
IUnknown
{
virtual STDMETHODIMP SampleCB(
double SampleTime, IMediaSample *pSample ) = 0;
virtual STDMETHODIMP BufferCB(
double SampleTime, BYTE *pBuffer, long BufferLen ) =
0;
};
static
const
IID IID_ISampleGrabberCB = {
0x0579154A, 0x2B53, 0x4994, { 0xB0, 0xD0, 0xE7, 0x73, 0x14, 0x8E,
0xFF, 0x85 } };
interface ISampleGrabber:
public IUnknown
{
virtual HRESULT
STDMETHODCALLTYPE SetOneShot( BOOL OneShot ) = 0;
virtual HRESULT
STDMETHODCALLTYPE SetMediaType( const AM_MEDIA_TYPE *pType ) =
0;
virtual HRESULT
STDMETHODCALLTYPE GetConnectedMediaType( AM_MEDIA_TYPE *pType ) =
0;
virtual HRESULT
STDMETHODCALLTYPE SetBufferSamples( BOOL BufferThem ) =
0;
virtual HRESULT
STDMETHODCALLTYPE GetCurrentBuffer( long *pBufferSize, long
*pBuffer ) = 0;
virtual HRESULT
STDMETHODCALLTYPE GetCurrentSample( IMediaSample **ppSample ) =
0;
virtual HRESULT
STDMETHODCALLTYPE SetCallback( ISampleGrabberCB *pCallback, long
WhichMethodToCallback ) = 0;
};
static
const
IID IID_ISampleGrabber = {
0x6B652FFF, 0x11FE, 0x4fce, { 0x92, 0xAD, 0x02, 0x66, 0xB5, 0xD7,
0xC7, 0x8F } };
static
const
CLSID CLSID_SampleGrabber = {
0xC1F400A0, 0x3F08, 0x11d3, { 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03,
0x9E, 0x37 } };
static
const
CLSID CLSID_NullRenderer = {
0xC1F400A4, 0x3F08, 0x11d3, { 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03,
0x9E, 0x37 } };
static
const
CLSID
CLSID_VideoEffects1Category = { 0xcc7bfb42, 0xf175, 0x11d1, { 0xa3,
0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59 } };
static
const
CLSID
CLSID_VideoEffects2Category = { 0xcc7bfb43, 0xf175, 0x11d1, { 0xa3,
0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59 } };
static
const
CLSID
CLSID_AudioEffects1Category = { 0xcc7bfb44, 0xf175, 0x11d1, { 0xa3,
0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59 } };
static
const
CLSID
CLSID_AudioEffects2Category = { 0xcc7bfb45, 0xf175, 0x11d1, { 0xa3,
0x92, 0x0, 0xe0, 0x29, 0x1f, 0x39, 0x59 } };
#endif
相关文章推荐
- 【转】 Win7环境下VS2010配置…
- Win7下使用VS2013编写的ActvieX在XP下注册提示:LoadLibrary("XXX.dll")失败-找不到指定的程序
- DMA 使用基本配置
- react-native 使用realm配置教程
- 【win7下IIS的安装和配置】 …
- [Git & GitHub] VS2015 上配置使用Git
- Win7下使用VS2013编写的ActvieX在XP下注册提示:LoadLibrary("XXX.dll")失败-找不到指定的程序
- 使用ESX 5连接RHEL5上配置的i…
- win7 64位DCOM配置(关于导出…
- 配置hadoop 使用fair sc…
- HP Jetdirect 打印服务器配置
- WIN7下无法使用sqlplus &quot…
- windows 10环境下 使用 msys2 + vs code 配置 c++ 的编译环境(转)
- weblogic 9.2 配置使用及web项目部…
- Win7(32&64)VS2013配置GDAL环境
- opencv学习(1.2) - Windows 10 安装OpenCV &配置VS 2015
- win7下配置oracle 11gr2客户…
- VS .NET 2005中水晶报表的使用 http://www.tianyablog.com/blogger/post_show.asp?BlogID=116800&PostID=9731765
- CKeditor 配置使用
- django-10-数据库使用04 后台安装配置及增加用户对数据库基本读写操作