代码之家  ›  专栏  ›  技术社区  ›  Yigang Wu

为什么在计算机中创建clsid_capturegraphbuilder2实例总是失败

  •  -1
  • Yigang Wu  · 技术社区  · 14 年前

    这是一个非常奇怪的问题,下面的机器信息来自dxdiag。未报告错误,但计算机中的create clsid_capturegraphbuilder2实例始终失败。创建clsid_filtergraph是可以的。在创建clsid_capturegraphbuilder2之前,我已经调用了coinitialize并创建了clsid_filtergraph。只有这台机器有这个错误,什么dll与这个接口或任何函数需要调用之前,使其工作?提前谢谢。


    系统信息

    报告时间:2010年4月24日09:46:58 机器名称:Turion 操作系统:Windows XP家庭版(5.1,内部版本2600)Service Pack 3(2600.xpsp_sp3_qfe.100216-1510) 语言:日语(地区设置:日语) 系统制造商:由O.E.M.填写。 系统型号:MS-7145 bios:默认系统bios 处理器:AMD Turion(TM)64移动技术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 32位Unicode


    DXDIAG注释

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

    1 回复  |  直到 14 年前
        1
  •  0
  •   Goz    14 年前

    不要将CoCreateInstance调用为CLSID\u FilterGraph..这毫无意义。coCreateInstance clsid_createCaptureGraph2并发布在coCreateInstance中使用的代码以及返回的任何hresult值。

    以下代码“应该”起作用:

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

    如果它不查找返回HR的hresult并告诉我们它是什么(或者自己查找)。

    除了无效参数之外,您在这里唯一应该失败的是类没有注册。如果是这样的话,这是相当严重的错误…这是不可能的。