我必须及时返回并调试一个 VB6 表单。它在应用程序(不是我们的,Esri ArcMap.exe)中使用。我看到 VB6 有一些调试功能,但我在任何地方都看不到,如在 .NET 中,“启动另一个应用程序”或“附加”到正在运行的应用程序的能力。
如何在 3rd 方应用程序中运行时调试我的 VB6 代码?
它就在那里;你只是没看到。
如果您的表单托管在 DLL 中(很可能来自您的描述),您有两个选项,这两个选项都可以从“项目”->“项目名称属性”对话框的“调试”选项卡中设置。
“等待组件被创建”
当单击运行 ( F5) 时,VB6 将更改您的 DLL 的注册表项,以便它们指向 VB6 调试器。
像往常一样启动您的第三方程序。
当任何程序尝试创建由您的 DLL 托管的对象和表单时,它将通过调试器进行。
“启动程序”
和之前一样,加上VB6会执行对话框中输入的命令行。
需要注意的是,VB6 必须在完全“以管理员身份”模式下运行,因为它需要写入注册表的正常保护区域。
不要担心第三个选项。我们只是说有些事情最好忘记。
我的第一手知识有点模糊(我继承了一台配置了所有这些东西的 PC,我无意从头开始重新设置它......),但这里有:
有一个名为ESRI Compile and Register的 ESRI VB6 插件,它可以让整个过程变得更容易。
该链接上有很多说明,但其中一个关键是在 Options->Support Visual Basic Debugger 下,它会创建一个文件ESRIVBDebugHelper.exe
.
在 Project -> Properties -> Debugging 选项卡中,在 Start Program 下,输入 this 的完整路径ESRIVBDebugHelper.exe
。然后,当您调试 VB6 应用程序时,它应该生成 ArcMap 并允许您在 VB6 IDE 中进行动态调试。