【问题标题】:why create CLSID_CaptureGraphBuilder2 instance always failed in a machine为什么在机器上创建 CLSID_CaptureGraphBuilder2 实例总是失败
【发布时间】:2011-02-12 21:34:30
【问题描述】:

真是个奇怪的问题,下面的机器信息来自DXDiag。没有报错,但是在本机创建 CLSID_CaptureGraphBuilder2 实例总是失败。可以创建 CLSID_FilterGraph。在创建 CLSID_CaptureGraphBuilder2 之前,我调用了 CoInitialize 并创建了 CLSID_FilterGraph。只有这台机器有这个错误,这个接口相关的dll或者之前需要调用什么函数才能使其工作?提前致谢。


系统信息

本报告时间:4/24/2010, 09:46:58 机器名称:图灵 操作系统:Windows XP Home Edition (5.1, Build 2600) Service Pack 3 (2600.xpsp_sp3_qfe.100216-1510) 语言:日语(地区设置:日语) 系统制造商:由 O.E.M. 填写 系统型号:MS-7145 BIOS:默认系统 BIOS 处理器:AMD Turion(tm) 64 Mobile Technology MT-30、MMX、3DNow、~1.6GHz 内存:768MB RAM 页面文件:已使用 376MB,可用 1401MB Windows 目录:C:\WINDOWS DirectX 版本:DirectX 9.0c (4.09.0000.0904) DX 设置参数:未找到 DxDiag 版本:5.03.2600.5512 32bit Unicode


DxDiag 注释

DirectX 文件选项卡:未发现问题。 显示选项卡 1:未发现问题。 声音选项卡 1:未发现问题。 声音选项卡 2:未发现问题。 音乐标签:未发现问题。 输入选项卡:未发现问题。 网络选项卡:未发现问题。

【问题讨论】:

  • 你调用 CoInitialize() 了吗?
  • @rep_movsd:他确实说他做到了......

标签: windows winapi interface directx directshow


【解决方案1】:

不要将 CoCreateInstance 称为 CLSID_FilterGraph .. 这是没有意义的。 CoCreateInstance CLSID_CreateCaptureGraph2 并发布您在 CoCreateInstance 中使用的代码以及您返回的任何 HRESULT 值。

以下代码“应该”工作:

ICaptureGraphBuilder2* pCapture = NULL;
HRESULT hr = CoCreateInstance( CLSID_CaptureGraphBuilder, NULL, CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void**) &pCapture) ;

如果没有查找 hr 中返回的 HRESULT 并告诉我们它是什么(或自己查找)。

除了无效参数之外,唯一应该让您失望的是该类未注册。如果是这样,那么这是相当严重的错误......这不应该是可能的。

【讨论】:

  • 返回的 HRESULT 是什么?我讨厌重复自己,但我已经提出了 3 次 nw 的回报 ...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多