如何解决COM组件问题?

时间:2015-09-17 12:22:34

标签: c windows com

对于这个问题的模糊性我道歉。

在将应用程序迁移到新服务器环境期间,为应用程序公开API的COM组件(.dll)文件已停止工作。

有什么方法可以解决COM组件问题吗?是否存在COM组件记录故障的标准方法(Windows事件查看器中没有事件)?我能以任何方式“检查”某个组件吗?

我已经使用regsvr32.exe成功注册了该组件(除了创建一些Windows Registery设置之外,我不知道这实际上做了什么)。

马亭

1 个答案:

答案 0 :(得分:1)

此故障排除方式有两个部分。

首先使用SYS内部的procmon。 SYS internals这显示了尝试打开COM服务器的进程的类似行为。

查看失败的函数调用。

接下来我会尝试直接在调试器中加载com控件,看看那里的任何失败

procmon的结果将显示注册表位置和文件位置,这些是加载com对象的关键。

失败可能是: -

  1. 为一个用户而不是所有用户安装。这将无法找到命名对象
  2. 架构不正确。如果prog.exe转到64位,则无法加载32位com DLL
  3. 缺少依赖项。其他DLL可能无法加载 - 这些将显示在procmon trace
  4. 配置数据。如果com DLL需要进一步配置,那么它将显示在procmon中的事件中,或者显示在调试器中的错误中
  5. 您可以在调试器中加载任何DLL。调试符号使其更容易,但我们正在尝试发现错误,它所做的调用中的异常