如何调试从另一个应用程序启动的应用程序?(VB6)

3

假设我启动应用程序#0,它进行一些计算,经过一段时间后启动应用程序#1、应用程序#2、应用程序#3(向新应用程序发送一些参数对象)。

我想调试应用程序#1,但必须从应用程序#0启动。

我该怎么做? (我正在使用Visual Studio 6,并且我有关于这些应用程序的源代码和所有内容)


生成的应用程序是ActiveX exe应用程序吗? - djv
1
听起来好像如果你创建一个项目组并将所有项目添加到其中(假设它们都是VB6),那么这应该可以满足你的需求。 - helrich
@Verdolino 是的,它们是ActiveX exe应用程序。 - Trax
2个回答

5

阅读本文,了解如何调试ActiveX exe。

基本上,您将运行ActiveX exe,然后在调用应用程序中添加对其的引用。保持ActiveX exe运行,因为引用是指向其运行进程,而不是已编译的exe。现在也运行调用应用程序。这将允许您在Visual Studio的单独实例上停止断点。

虽然已经过了一段时间,但我想确保自己能够做到,并且我可以确认它有效。所以这里是:

创建一个名为Project1的新项目。它将成为ActiveX EXE。

enter image description here

您应该有一个名为Class1的文件,在其中放置以下代码:
Option Explicit

Public Function Foo()
    MsgBox "foo"
End Function

现在创建另一个名为Project2的项目。这是一个标准的可执行文件(EXE)。

enter image description here

开始项目1。此提示询问项目启动时应执行的操作。选择“等待组件被创建”。点击确定并让其运行。

enter image description here

进入Project2,点击项目菜单 >> 引用。在列表中找到Project1,勾选复选框。(此时不要浏览文件系统到Project1,只需使用可用引用列表中的临时二进制文件!)

enter image description here

现在将此代码输入到 Project2.Form1 中。
Option Explicit

Private Sub Form_Load()
    Dim p As New Project1.Class1
    p.Foo
End Sub

你可以在 Project1.Class1.Foo() 的 msgbox 行上设置断点。运行 Project2 时,将会触发此断点。
你添加的引用仅用于调试。在部署应用程序时,你应该将 ActiveX exe 二进制文件复制到应用程序目录并直接引用这些文件。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接