代码之家  ›  专栏  ›  技术社区  ›  ata

由于以下错误,检索具有clsid…的组件的COM类工厂失败:80040154

  •  1
  • ata  · 技术社区  · 15 年前

    我正在使用directshowlib和samplegrabber捕获AVI文件的视频帧。 我通过使用图形生成器和一些过滤器来实现这一点。一切正常,我可以初始化图形和过滤器。

    然后我添加了一些代码来获取一些视频信息,比如尺寸、帧速率E.T.C。我以前用IMediadet。但当我尝试初始化它时:

    Type t = Type.GetTypeFromCLSID(new Guid("65BD0710-24D2-4ff7-9324-ED2E5D3ABAFA"));
    IMediaDet mediaDet = (IMediaDet)Activator.CreateInstance(t);
    

    这个 Activator.CreateInstance(t) 引发异常:

    由于以下错误,为clsid 65bd0710-24d2-4f7-9324-ed2e5d3abafa的组件检索COM类工厂失败:80040154。

    我认为这不是构建的问题,因为过滤器和图形生成器正在初始化良好。有谁知道,或者有没有其他API可以用来收集AVI文件信息,如尺寸、帧速率、视频长度?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Hans Passant    15 年前

    我想你打错了guid。它接近qedit.dll支持的值,65bd0711-24d2-4f7-9324-ed2e5d3abafa,您的值为1位数。

        2
  •  0
  •   Ruddy    15 年前

    0x80040154-是类未注册-通常这意味着两件事之一-clsid错误,或者实现该类的dll/exe未(正确)在计算机上注册。

    您可以查看hkcr/clsid下的注册表,查看它是否在计算机上注册。