首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regsvr32奇怪行为=> Regsvr32没有给出任何成功或失败的消息

Regsvr32奇怪行为=> Regsvr32没有给出任何成功或失败的消息
EN

Stack Overflow用户
提问于 2011-08-10 20:31:08
回答 4查看 5.9K关注 0票数 7

我有一个directShow过滤器: MyFilter.ax

当我尝试向MyFilter.ax实用程序注册Regsvr32时,它不会给任何错误或消息(成功或失败)。但是过滤器没有注册。

Regsvr32实用程序对我的其他过滤器很好。

为什么Regsvr32不给出任何成功或失败消息?如何调试Regsvr32失败-成功?任何用于注册directshow过滤器的其他实用工具都可以提供有意义的消息?

谨致问候

更新:

我在虚拟机上安装了干净的win7操作系统。然后再次尝试register.Fail,而不需要来自regsvr32的消息响应。

然后,但是在虚拟机上再次安装一个干净的win7操作系统。然后进行所有更新,。在我进行了更新之后,regsvr32工作并安装了我的过滤器……我不知道regsvr32失败的原因以及修复它的更新类型。还是真的是更新的问题..。

EN

回答 4

Stack Overflow用户

发布于 2011-09-07 18:06:10

可以发生并显示上述行为的是,在过滤器的某个地方,您处于死循环,或无限等待,因此DLL的DllRegisterServer永远不会返回。在本例中,您将能够看到,每次尝试regsvr32任务管理器时,都会向您显示一个运行进程的regsvr32.exe,无论是否消耗了CPU。

如果这就是你所拥有的,你会想要附加调试器,看看你到底在哪里有死循环.

票数 3
EN

Stack Overflow用户

发布于 2011-08-11 07:11:25

检查您是否使用regsvr32和/s选项调用

票数 2
EN

Stack Overflow用户

发布于 2011-08-11 17:28:41

如果是可以自己实现像regsvr32这样的应用程序,只需加载目标dll并调用函数DllRegisterServer即可。您可以在C#中实现它,例如使用以下p/invoke声明:

代码语言:javascript
复制
[DllImport("yourdll.ax")]
private static extern int DllRegisterServer();

这样你就可以缩小问题范围了。

更新:

我会尝试安装Windows7PlatformSDK并编译您的DirectShow过滤器。我以前在Windows7中见过与旧版本的DirectX的兼容性问题(甚至缺少dlls),尽管我没有保留这个引用(如果有人阅读了这个引用,请发布它)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7017386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档