我试图执行graphEditPlus生成的代码(使用VS2010),但遇到以下问题:
CComQIPtr<ISampleGrabber, &IID_ISampleGrabber> pSampleGrabber_isg(pSampleGrabber);
错误是: 错误C2065:&#39; ISampleGrabber&#39; :未声明的标识符 错误C2065:&#39; IID_ISampleGrabber&#39; :未声明的标识符 错误C2514:&#39; ATL :: CComQIPtr&#39; :class没有构造函数
我尝试下载不同版本的Windows SDK(V7.1,V6.0A,V5)并设置include / lib路径,但仍然遇到同样的问题!
SampleGrabber仍然受支持吗?主要是,我的代码中使用了SampleGrabber来从视频捕获源中获取帧...
感谢您的协助......
答案 0 :(得分:0)
Microsoft弃用了Sample Grabber和整个DES API,但是如果您导入类型库,或者只是将声明复制到项目中 - 除了一些最新的OS版本(Windows Server 2008?)之外,该组件仍然可用。已完全消失,您可能需要另一种解决方案,例如从早期的SDK示例构建您自己的解决方案。
有关详细信息,请参阅ISampleGrabber deprecated: where can I find alternatives?。
另请参阅RenderWmvVideo.cpp,其中包含要复制/粘贴的代码片段,并将声明重新添加到项目(文件顶部的#pragma
部分):
#pragma region Windows SDK Tribute, qedit.h
struct __declspec(uuid("0579154a-2b53-4994-b0d0-e773148eff85"))
ISampleGrabberCB : IUnknown
{
...
#pragma endregion