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

分析COM对象注册表干扰的好工具?,com,registry,Com,Registry,我继承了两个复杂的COM对象。一个是从另一个派生出来的,而且(据称)guid等都被更改了,以便它们不会干扰。它们确实会干扰,到目前为止,我们的调试还没有确定罪魁祸首——我们已经完成了注册表比较和源代码差异,并查看了SCCS签入。显然,我们遗漏了一些东西,但它们又大又复杂,我一点也不惊讶 是否有一个工具可以帮助您检查COM对象的良好行为,或者检测两个COM对象之间的冲突,或者分析注册表?如果您有Visual Studio,您可以使用该工具拉出注册表项,然后通过脚本收集GUI列表。您还可以使用OLE

我继承了两个复杂的COM对象。一个是从另一个派生出来的,而且(据称)guid等都被更改了,以便它们不会干扰。它们确实会干扰,到目前为止,我们的调试还没有确定罪魁祸首——我们已经完成了注册表比较和源代码差异,并查看了SCCS签入。显然,我们遗漏了一些东西,但它们又大又复杂,我一点也不惊讶


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

如果您有Visual Studio,您可以使用该工具拉出注册表项,然后通过脚本收集GUI列表。您还可以使用OLEView(也来自VisualStudio)来完成此操作

还有其他免费工具可以做到这一点:
如果你有VB,MMM(制作我的清单)可能会被引诱去做这件事。
来自WIX3.0和WIX2.0的热量或动物油脂也可以这样做


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

如果您有Visual Studio,您可以使用它拉出注册表项,然后通过脚本收集GUI列表。您还可以使用OLEView(也来自VisualStudio)来完成此操作

还有其他免费工具可以做到这一点:
如果你有VB,MMM(制作我的清单)可能会被引诱去做这件事。
来自WIX3.0和WIX2.0的热量或动物油脂也可以这样做


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

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


另一种想法是,也许他们都共享一个基于公共DLL的DLL。你可以用自动化工具来检查,但是在这种情况下,我要做的第一件事是运行RegEdt32.exe并查看HKEY_CLASSES_ROOT,这时你应该可以看到每个COM对象,这将为你提供ClassID。然后,您可以在HKEY_CLASSES_ROOT/CLSID中查找这些CLSID,以找到类型库GUID。这是一个手动方法,但它应该告诉你所有你需要知道的冲突

另一种想法是,也许他们都共享一个基于公共DLL的DLL。您可以使用一些工作工具来检查这一点:


-可以钩住COM OLE和ActiveX接口
一些工作工具:


-可以钩住COM OLE和ActiveX接口