假设我启动应用程序#0,它进行一些计算,经过一段时间后启动应用程序#1、应用程序#2、应用程序#3(向新应用程序发送一些参数对象)。
我想调试应用程序#1,但必须从应用程序#0启动。
我该怎么做? (我正在使用Visual Studio 6,并且我有关于这些应用程序的源代码和所有内容)
假设我启动应用程序#0,它进行一些计算,经过一段时间后启动应用程序#1、应用程序#2、应用程序#3(向新应用程序发送一些参数对象)。
我想调试应用程序#1,但必须从应用程序#0启动。
我该怎么做? (我正在使用Visual Studio 6,并且我有关于这些应用程序的源代码和所有内容)
阅读本文,了解如何调试ActiveX exe。
基本上,您将运行ActiveX exe,然后在调用应用程序中添加对其的引用。保持ActiveX exe运行,因为引用是指向其运行进程,而不是已编译的exe。现在也运行调用应用程序。这将允许您在Visual Studio的单独实例上停止断点。
虽然已经过了一段时间,但我想确保自己能够做到,并且我可以确认它有效。所以这里是:
创建一个名为Project1的新项目。它将成为ActiveX EXE。
您应该有一个名为Class1的文件,在其中放置以下代码:Option Explicit
Public Function Foo()
MsgBox "foo"
End Function
开始项目1。此提示询问项目启动时应执行的操作。选择“等待组件被创建”。点击确定并让其运行。
进入Project2,点击项目菜单 >> 引用。在列表中找到Project1,勾选复选框。(此时不要浏览文件系统到Project1,只需使用可用引用列表中的临时二进制文件!)
现在将此代码输入到 Project2.Form1 中。Option Explicit
Private Sub Form_Load()
Dim p As New Project1.Class1
p.Foo
End Sub
微软已经发布了一些与此相关的文章,但它指出你必须启动VB6.exe作为子进程而不是你编译的VB6程序。