分析COM对象注册表干扰的好工具?

时间:2009-02-06 22:53:07

标签: com registry

我继承了两个复杂的COM对象。一个来自另一个,并且(据称)GUID等等都被改变,因此他们不应该干涉。它们确实存在干扰,到目前为止我们的调试还没有确定罪魁祸首 - 我们已经完成了注册表比较和源代码差异,并查看了SCCS签名。显然我们错过了一些东西,但它们又大而复杂,我并不感到惊讶。

是否有一个可以帮助的工具,可能是通过检查COM对象的良好行为或检测两个COM对象之间的冲突或分析注册表?

3 个答案:

答案 0 :(得分:6)

如果您有Visual Studio,可以使用regcap提取注册表项,然后通过脚本收集GUID列表。您也可以使用OLEView(也来自Visual Studio)来执行此操作。

还有其他免费工具可以做到这一点:
如果你有VB,MMM(Make My Manifest)就可以成功 来自Wix 3.0和2.0的Heat或Tallow也可以做类似的事情。

输出格式在每种情况下都会略有不同,但足以将相关信息收集到文本文件中。

答案 1 :(得分:2)

不确定自动化工具,但在这种情况下我要做的第一件事是运行RegEdt32.exe并查看HKEY_CLASSES_ROOT - 此时您应该能够看到每个COM对象,这将为您提供班级号。然后,您可以在HKEY_CLASSES_ROOT / CLSID中查找这些CLSID以查找类型库GUID。这是一种手动方法,但它应该告诉您关于冲突的所有信息。

另一个想法,也许他们都在共享一个基于共同的DLL。您可以使用Dependency Walker

进行检查

答案 2 :(得分:2)

一些工作工具:
Deviare COM Spy Console

Debugging tools box list

WinAPIOverride32 - 可以挂钩COM OLE和ActiveX接口