【问题标题】:DEBUG ERROR : Runtime needed for <name.exe> occurs while cusing COM in vc++ project?调试错误:在 vc++ 项目中使用 COM 时发生 <name.exe> 所需的运行时?
【发布时间】:2010-11-02 03:49:48
【问题描述】:

我为我的工作创建了一个 COM 组件。我也注册了组件。

在我的系统上,我有两个 VM 工作站。在我的第一个工作站中,它运行良好。在我的第二个工作站中,它显示一个错误框,其中包含消息此程序需要运行时间并以不寻常的方式关闭,请联系应用程序管理员。我以为这是因为没有在第二次工作中注册 dll,然后我注册了它,它工作正常。

当我尝试在 win2k8 机器上进行测试时,即使我成功注册了 COM 组件,它也会显示上述错误窗口??

谁能帮我理解这个?

提前谢谢...

【问题讨论】:

  • 您至少应该引用错误消息的确切文本。
  • 你能先纠正一下你的错别字吗?这个问题很难读。

标签: c# visual-studio debugging visual-c++ com


【解决方案1】:

我的猜测是您的 exe 需要一些其他 dll,这些 dll 在一个系统上可用,但在另一个系统上不可用。在您收到错误的系统上,使用Process Monitor 观察您的 exe 运行,直到出现错误。如果任何 dll 对您的 exe 不可用,您应该在那里看到它。另一个你可以使用的工具是Dependency Walker,它可以指向即使不运行exe也不可用的链接dll。

如果确实缺少 dll,常见原因是未安装 VC 可再发行组件包,以及 64 位系统上的 SysWOW64-System32 混淆。

【讨论】:

  • w2k8 是 64 位机器,而我创建的 exe 是 winn2k3 32 位机器.....是不是调试错误的原因???
  • 可能是这样。对于 64 位可执行文件,系统目录是 System32。对于 32 位可执行文件,系统目录是 SysWOW64。 System32 不在 32 位可执行文件的搜索路径 (%PATH%) 中,反之亦然。这意味着如果其他所需的 dll 位于错误的系统目录中,它们将不可用。这可以使用 filemon 或 dependency walker 轻松发现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多