【问题标题】:Will a 32-bit DirectShow filter work on a 64-bit Windows?32 位 DirectShow 过滤器能否在 64 位 Windows 上工作?
【发布时间】:2017-01-22 09:32:45
【问题描述】:

具体来说,在 .AX 文件中获得了 DirectShow 过滤器库,其中包含从 MPC/Guliverkli SourceForge 页面下载的 Guliverkli MP4 拆分器(版本“20050310”)。

我正在使用 GraphStudioNext(64 位版本)尝试不同的 DirectShow MPEG-4 拆分器,但现在我看到它无法从文件导入过滤器(图形 -> 从文件导入过滤器),当出现错误 0x800700C1我尝试在 AX 文件中搜索过滤器 CLSID。

我怀疑这与过滤器是 32 位 DLL(扩展 AX,但没关系)而系统及其 DirectShow 子系统是 64 位(Windows 7)这一事实有关。

是这些东西的本质吗?我不能在这里使用 32 位过滤器?

也试过regsvr32 MP4Splitter.ax,但它给了我错误0x80070005,我认为这是同样的问题,但包装不同。

我尝试了一个 64 位过滤器进行比较——MPEG-4 splitter from GDCL——它被顺利导入到上面的 Graph Studio Next 中。

我特别想知道的是——能否在 64 位系统上安装 32 位 DirectShow 过滤器,如果可以,我是不是走错路了?

【问题讨论】:

  • 0x80070005 是“拒绝访问”错误代码,因此您必须使用管理权限执行 regsvr32
  • @AntonK 一年半后,我回来支持您的评论并赞扬您的[正确]声明。

标签: windows dll com directshow


【解决方案1】:

我特别想知道的是——能否在 64 位系统上安装 32 位 DirectShow 过滤器,如果可以,我是不是走错路了?

在 64 位操作系统中,32 位应用程序使用 32 位过滤器(.DLL、.A​​X 等),而 64 位应用程序使用 64 位过滤器。

更具体地说,GraphStudioNext 的 32 位版本仅适用于(列表、使用等)32 位过滤器。 64 位的 GraphStudioNext 只处理 64 位的过滤器。

您在尝试使用提到的过滤器时遇到的问题是特定于这些过滤器甚至构建的(例如,缺少依赖项或使用对 DEP 不友好的编译器构建等)。

【讨论】:

  • 谢谢。刚刚检查了 32 位 Graph Studio Next,我确实可以导入和使用我拥有的那些 32 位过滤器。现在,我如何将这些添加到 64 位系统中,以便 32 位应用程序可以使用它?
  • 完全一样。相同的 32 位 AX 文件在 32 位操作系统中同样适用,在 64 位操作系统中也适用于 32 位应用程序。在这两种情况下,过滤器的典型注册都是在管理员的命令提示符下使用 regsvr32 运行它们。
  • 尚未检查 32 位 DLL 注册服务器 -- %WINDIR%\SysWOW64\regsvr32.exe -- 但我现在几乎假设这就是我在 64 位系统上注册 32 位过滤器的方式。如果我发现任何问题,我会回到这里并记录下来。直到进一步,我无论如何都接受你的回答。再次感谢。
猜你喜欢
  • 1970-01-01
  • 2018-05-16
  • 2012-04-17
  • 2011-03-04
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 2012-10-26
  • 1970-01-01
相关资源
最近更新 更多