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