如何在Delphi中调试COM dll?

问题描述 投票:0回答:7

我尝试在 Delphi 中调试 COM dll (TAutoObject),但我的断点不是绿色的。

我的选择是这样的:

  • 主机:c:\Program Files\Internet 资源管理器\iexplore.exe
  • 参数:c:\software est.html

我的测试很好,但在 Delphi 中没有断点

有什么方法可以做到这一点?

delphi com dll debugging delphi-2010
7个回答
8
投票

您必须运行启动 COM+ 对象的程序,然后将其附加到进程。


2
投票

IE 启动一个托管不可信代码的子进程。这可能就是您的调试设置不起作用的原因,以及启动后附加到进程的原因。


1
投票

由于调试器不会启动该文件,因此这是行不通的。

IIRC 您可以尝试“附加到进程”到运行它的进程(iexplorer.exe),但问题是这不允许通过组件的启动进行调试。 (因为手动附加需要时间)

我有一个不同的设置,我在delphi应用程序的面板上实例化了一个略有不同的编译.ocx,并用它来调试。效果很好。d


1
投票

此链接调试 DLL 时未遵循断点帮助我在 Delphi 5 中调试我的 com dll。转到项目 -> 选项 -> 链接器 -> 选中“包括远程调试符号”。我无法告诉你为什么它有效。 Delphi 5 的帮助提供了以下描述:

包含远程调试符号 如果您使用远程调试,请选中此项。


0
投票

您还需要打开集成调试。它位于调试器选项的常规选项卡上。

过去我所做的是创建一个单独的程序来调用我的 COM 对象并将其用作调试目标而不是标准主机。这简化了事情,还允许您为已知问题创建特定的可重复测试,以帮助以后进行冒烟测试。


0
投票

这是在最初请求很久之后才提供的。然而,我一直在为类似的问题而苦苦挣扎,现在已经解决了。 我使用 XE7 和 W10。 COM (Active-X) dll 和使用它的应用程序都是我的代码。 如上所述,我将我的应用程序指定为主机应用程序,刚刚运行了添加了调试的 dll。主机应用程序工作正常,但调试被划掉了。 解决方案是 Windows (10) 没有运行调试版本 - 它正在运行以前的注册版本。因此,在 dll 源的调试文件夹中编译 dll 后,我在 Windows 中重新注册了该 dll,从而解决了问题。调试工作与正常程序一样。希望这有帮助。


-1
投票

您还可以使用 CodeSite 等工具。

© www.soinside.com 2019 - 2024. All rights reserved.