什么';修复损坏的COM注册的正确方法是什么?

什么';修复损坏的COM注册的正确方法是什么?,com,activex,dll,Com,Activex,Dll,我们有一个包含2个ActiveX控件的.ocx文件。一件事导致另一件事。。。现在我们进入了“dll地狱”。一个控件在包含应用程序中加载良好,而另一个控件(被修改的控件)无法完全加载。毫无疑问,这是因为我们改变了几个事件和方法签名。(这应该教会我们先注销旧的.ocx,然后再注册新的…) 在过去,我记得必须进入注册表并手动从HKCR\TypeLib中删除重要的外观条目,但那是可怕的事情。对此,什么是公认的解决方案?如果您的COM注册确实被破坏,我所知道的唯一修复方法是在注册表中搜索有问题的CLSID

我们有一个包含2个ActiveX控件的.ocx文件。一件事导致另一件事。。。现在我们进入了“dll地狱”。一个控件在包含应用程序中加载良好,而另一个控件(被修改的控件)无法完全加载。毫无疑问,这是因为我们改变了几个事件和方法签名。(这应该教会我们先注销旧的.ocx,然后再注册新的…)


在过去,我记得必须进入注册表并手动从
HKCR\TypeLib
中删除重要的外观条目,但那是可怕的事情。对此,什么是公认的解决方案?

如果您的COM注册确实被破坏,我所知道的唯一修复方法是在注册表中搜索有问题的CLSID并删除对它的所有引用

是的,有点危险;这就是activex控件应该安全注册自身的原因,也是为什么MS现在建议使用MSI进行安装,而不是在安装过程中执行selfreg(regsvr32)。一旦某个系统出现问题,修复它可能是一件痛苦的事情

但是,如果您找出了相关的CLSID(每个控件的CLSID和typelib),并且只删除引用这些内容的内容,那么您应该可以;为了安全起见,请在开始之前设置系统还原点


祝你好运

如果你的COM注册真的被破坏了,我所知道的修复它的唯一方法就是在注册表中搜索有问题的CLSID并删除对它的所有引用

是的,有点危险;这就是activex控件应该安全注册自身的原因,也是为什么MS现在建议使用MSI进行安装,而不是在安装过程中执行selfreg(regsvr32)。一旦某个系统出现问题,修复它可能是一件痛苦的事情

但是,如果您找出了相关的CLSID(每个控件的CLSID和typelib),并且只删除引用这些内容的内容,那么您应该可以;为了安全起见,请在开始之前设置系统还原点


祝你好运

你试过注册表清理器(CCLEANER之类的工具)吗?有时,这些工具能够解决这些activex问题。您是否尝试过注册表清理器(CCLEANER之类的工具)?有时,这些工具能够修复这些activex问题。