是否可以同时调试 VB6 和 C++ COM dll?

Posted

技术标签:

【中文标题】是否可以同时调试 VB6 和 C++ COM dll?【英文标题】:Is it possible to simultaneously debug VB6 and a C++ COM dll? 【发布时间】:2011-02-07 23:15:54 【问题描述】:

我有一个由 VB6 前端加载的 VB6 dll。此 VB6 dll 通过其 COM 接口调用 C++ ATL dll。因此,我可以从 VB6 中的代码运行,也可以在 C++ 中进行调试,但是我似乎无法单步执行 VB6 代码然后进入 C++ 代码。我觉得这应该是可能的。目前我正在执行以下步骤

    开始VB6调试 开始 C++ 调试。这包括启动 VB6 前端并使用选项中的 VS2008 调试属性将工作目录设置为 VB6 前端目录。 执行代码并逐步执行 VB6 代码,直到我应该输入 C++ 代码。我看到加载的符号窗口在 VS2008 IDE 中发生了变化。

现在,它看起来应该可以工作了,但我从未在我的 C++ 代码中遇到任何断点。如果我不先启动 VB6 调试,我会遇到断点。

【问题讨论】:

【参考方案1】:

您应该能够将 vb6.exe 设置为 C++ 项目的启动程序并开始调试。然后在VB6中,打开工程,开始调试。

【讨论】:

【参考方案2】:

确保两个项目的 PDB 文件都可用于您的调试器。如果你看到 。加载了'\filename',在debug out中没有找到匹配的符号信息,需要在tools->optios->debug->symbols中添加调试符号搜索路径。

【讨论】:

以上是关于是否可以同时调试 VB6 和 C++ COM dll?的主要内容,如果未能解决你的问题,请参考以下文章

试图在 VB6 的 C++ DLL 中显示 UI 会导致在 AfxGetResourceHandle 处断言

C++ 库在 vb6 中有效,但在 c# 中无效

从 Visual Studio 2012 调试 VB6 代码

在 VB6 应用程序中使用 C++ DLL

从 64 位应用程序加载/与 vb6 COM dll 交互

如何从 C++/CLI 调用 VB6 COM