无法在包含多个组件的 VB6 项目中调试 ActiveX

Posted

技术标签:

【中文标题】无法在包含多个组件的 VB6 项目中调试 ActiveX【英文标题】:Can not debug an ActiveX inside a VB6 project with several components inside 【发布时间】:2010-08-18 12:38:15 【问题描述】:

我必须调试在 VB6 中完成的大型应用程序。该应用程序由一个主 EXE、一些 ActiveX 项目和其他 ActiveX 控件项目组成。

我面临的问题是我无法在某些 ActiveX 项目中设置断点。看起来应用程序正在调试器之外使用 OCX,因为应用程序运行但断点根本不存在。

主 EXE 具有对该项目生成的 OCX 的引用集。如果我删除该引用,则会收到有关未知类的编译错误。

任何帮助都会很棒。

【问题讨论】:

【参考方案1】:

确保您的 ActiveX 项目使用二进制兼容性(在项目属性的组件选项卡上)。如果不是,则引用 ActiveX 控件的 exe 项目指向的类 ID 与 ActiveX 项目不同,您将无法调试。

【讨论】:

您能解释一下为什么需要这样做吗?我没有抓住它。如果 ActiveX 在项目中,我希望 EXE 项目使用 ActiveX 项目。 @SoMos 它是必需的,因为您的项目不再引用项目内部的 ActiveX,因为您已允许 GUID 标识符更改。 VB6 和 COM 现在认为构建的 OCX 与源代码项目是完全分开的。每次构建它时,它都会更改标识符。 +1 C-磅大师

以上是关于无法在包含多个组件的 VB6 项目中调试 ActiveX的主要内容,如果未能解决你的问题,请参考以下文章

无法在vb6项目中加载dsr文件

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

串口调试助手,VB6.0开发

串口调试助手,VB6.0开发

尝试从C#调试到VB6会产生TYPE_E_CANTLOADLIBRARY?

VB6通用控件在Windows 10上