【问题标题】:How to debug an ActiveX application in VB Script using VB classic IDE如何使用 VB 经典 IDE 在 VB 脚本中调试 ActiveX 应用程序
【发布时间】:2018-08-03 08:53:53
【问题描述】:

我们在 VB 6.0 中编写了一个 ActiveX 应用程序,它承载在 VC++ dll 中。我们想使用 VB 经典 IDE 调试该代码。我们无法调试它,因为它没有命中我们设置的断点。如何使用 VB 经典 IDE 调试 ActiveX 应用程序?

【问题讨论】:

  • 您在尝试调试时遇到了什么问题?
  • 断点在 vb classic 6.0 ide 中未命中
  • 我通过清理语法增加了您问题的可读性,并在实际问题中添加了您的澄清注释,因为对于任何试图回答的人来说,这都是至关重要的信息。最后,我根据您的标题在问题正文中添加了一个明确的问题,但您可能想验证这实际上是您想问的问题。我不确定“VC++ dll 中的哪些主机”是什么意思,因此您可能需要自己编辑它以更清楚您的意思。
  • 你的标题提到了“VB Script”,你的标签和正文提到了“VB 6”。您能否确认您实际上是指 VB6 并更改标题?
  • 对不起,其实是VB 6.0的经典。

标签: c++ visual-c++ vb6


【解决方案1】:

如果您在 VB 6 IDE 中启动您的 ActiveX DLL 项目,然后从其他应用程序(您的 C++ 应用程序,或通过其他 VB 项目或任何其他可以使用 COM 对象的语言对其进行测试)创建组件,它应该在调试器中加载对象,您可以在运行时设置断点并查看变量。请参阅 Visual Basic 6 概念指南中的“Testing and Debugging ActiveX Components”。

如果这对您不起作用,您能否通过创建一个新的简单 ActiveX DLL 组件并从单独的项目中调用它来解决您遇到的问题 MCVE(您可能想尝试从更多不是一种语言),并重现您必须澄清的问题,以澄清什么不适合您?

【讨论】:

    【解决方案2】:

    您可能在 IDE 中选择了“Break on Unhandled Errors”。如果这样做,那么 ActiveX 对象中的任何错误都会在访问该对象的客户端的行上设置断点,通常是方法调用。如果这是您得到的行为(“没有达到我们设置的断点”并没有说明这一点),那么这几乎肯定是问题所在。

    无论如何,我建议您检查一下。您应该选择了“Break in Class Module”。有关处理断点的不同方法以及如何更改设置的完整说明,请参阅this post。这里也是the doc 的主题。

    【讨论】:

      猜你喜欢
      • 2017-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多