想象一下,当我启动应用程序#0时,它会进行一些计算,并在一段时间后启动应用程序#1,应用程序#2,应用程序#3。 (它发送一些参数,反对新的应用程序。)。
我想调试应用程序#1,但必须从应用程序#0启动。
我该怎么做? (我使用Visual Studio 6& i有源代码和关于这些应用程序的所有内容)
答案 0 :(得分:5)
阅读this article,其中介绍了如何调试ActiveX exe
基本上,您将运行ActiveX exe,然后在调用应用程序中添加对它的引用。 保持ActiveX exe运行,因为引用是针对其运行进程,而不是其编译的exe。现在也运行调用应用程序。这将允许您在visual studio的单独实例中停止断点。
已经有一段时间但我想确保自己可以做到这一点,我可以确认它有效。所以这就是:
创建一个名为Project1的新项目。它将是ActiveX EXE
您应该有一个名为Class1的文件,您将在其中放置此代码:
Option Explicit
Public Function Foo()
MsgBox "foo"
End Function
现在创建另一个名为Project2的项目。这是标准的EXE
启动Project1。此提示询问项目启动时要执行的操作。选择"等待创建组件"。单击确定并保持运行。
转到Project2,项目菜单>>引用。在列表中找到 Project1 。勾选复选框。 (此时不要将文件系统浏览到Project1,只需在可用的引用列表中使用临时二进制文件!)
现在在Project2.Form1
中输入此代码Option Explicit
Private Sub Form_Load()
Dim p As New Project1.Class1
p.Foo
End Sub
您可以在msgbox行上的Project1.Class1.Foo()中放置一个断点。运行Project2时将触发此断点。
您添加的引用严格用于调试。部署应用程序时,应将ActiveX exe二进制文件复制到应用程序目录并直接引用这些文件。
答案 1 :(得分:0)
Microsoft发布了一些与此有关的文章,但它声明您必须启动VB6.exe作为子进程而不是编译的VB6程序。