如何调试vb6 activex组件网

如何调试vb6 activex组件网,vb6,Vb6,我有一个VB6 ActiveX EXE,它正在从另一个桌面应用程序调用。启动桌面应用程序时,我可以看到process manager中列出的ActiveX exe。如何从VB6 IDE中调试此ActiveX组件?将ActiveX exe项目加载到VB6 IDE中。根据需要设置断点。按F5(或使用鼠标单击开始按钮图标) 然后启动桌面应用程序。当它实例化应用程序时,它将连接到IDE中运行的副本。请注意,任务管理器中不会显示ActiveX exe。将ActiveX exe项目加载到vb6 IDE中。根

我有一个VB6 ActiveX EXE,它正在从另一个桌面应用程序调用。启动桌面应用程序时,我可以看到process manager中列出的ActiveX exe。如何从VB6 IDE中调试此ActiveX组件?

将ActiveX exe项目加载到VB6 IDE中。根据需要设置断点。按F5(或使用鼠标单击开始按钮图标)


然后启动桌面应用程序。当它实例化应用程序时,它将连接到IDE中运行的副本。请注意,任务管理器中不会显示ActiveX exe。

将ActiveX exe项目加载到vb6 IDE中。根据需要设置断点。按F5(或使用鼠标单击开始按钮图标)


然后启动桌面应用程序。当它实例化应用程序时,它将连接到IDE中运行的副本。请注意,任务管理器中不会显示ActiveX exe。

我们必须从所有位置注销ActiveX exe,并确保注册表中没有条目

使用activex exe名称搜索注册表,如果注册表中有任何条目,请手动删除它


否则,测试应用程序将触发activex,而不是从IDE运行的activex。我们必须从所有位置注销activex exe,并确保注册表中没有条目

使用activex exe名称搜索注册表,如果注册表中有任何条目,请手动删除它


否则,测试应用程序将触发activex,而不是从IDE运行的activex,所以您想将VS6调试器附加到运行VS20XX之类的.exe吗?我认为这是不可能的。ActiveX EXE是用PDB文件创建的吗?如果是这样,您可以使用Visual Studio将调试器附加到ActiveX EXE,然后加载PDB。加载后,您可以打开与ActiveX EXE相关的源代码,并放置所需的断点。是否要将VS6调试器附加到运行VS20XX之类的.EXE?我认为这是不可能的。ActiveX EXE是用PDB文件创建的吗?如果是这样,您可以使用Visual Studio将调试器附加到ActiveX EXE,然后加载PDB。加载后,您可以打开与ActiveX EXE相关的源代码,并放置所需的断点。不,这不起作用。。当我启动桌面应用程序时,它直接调用ActiveX,并没有在VB6 IDI中点击断点。项目兼容性是否设置为二进制兼容性?兼容性目标与桌面应用程序实例化的版本/接口相同?如果没有,则您将看到所描述的行为(桌面应用程序最终将实例化exe,而不是运行IDE中的项目)。让我解释一下我所做的操作。1)将ActiveX项目加载到vb6 IDE中2)设置ActiveX exe所在的二进制兼容路径。2) 将断点放在main方法上,然后按F5(让我解释一下为什么我在按F5之前放置断点,因为如果我没有放置断点,那么应用程序将通过调用应用程序所期望的关于命令行参数的错误。)3)启动桌面应用程序。那么桌面应用程序调用的是ActiveX exe,而不是通过VB6 IDE命令行打开的ActiveX控件?通过COM/ActiveX实例化ActiveX exe时,您没有命令行。您的桌面应用程序是否正在运行外壳程序或Process.Start-ing或以类似方式启动exe?如果是这样,那么它就不是以这种方式作为ActiveX运行的,您可以编译为标准的exe,桌面应用程序仍然可以运行您的exe。如果是这种情况,那么,不,您不能在从桌面应用程序运行应用程序时调试应用程序。您可以使用命令行parms在IDE中运行exe进行调试,无需使用桌面应用程序。但我现在还不完全清楚您在做什么。或者-您可能需要设置组件的启动模式。选择“项目属性”、“组件”选项卡,然后选择“ActiveX组件”而不是“独立组件”。然后,当按F5启动程序时,它将等待程序被实例化(通过桌面应用)。不,这不起作用。。当我启动桌面应用程序时,它直接调用ActiveX,并没有在VB6 IDI中点击断点。项目兼容性是否设置为二进制兼容性?兼容性目标与桌面应用程序实例化的版本/接口相同?如果没有,则您将看到所描述的行为(桌面应用程序最终将实例化exe,而不是运行IDE中的项目)。让我解释一下我所做的操作。1)将ActiveX项目加载到vb6 IDE中2)设置ActiveX exe所在的二进制兼容路径。2) 将断点放在main方法上,然后按F5(让我解释一下为什么我在按F5之前放置断点,因为如果我没有放置断点,那么应用程序将通过调用应用程序所期望的关于命令行参数的错误。)3)启动桌面应用程序。那么桌面应用程序调用的是ActiveX exe,而不是通过VB6 IDE命令行打开的ActiveX控件?通过COM/ActiveX实例化ActiveX exe时,您没有命令行。您的桌面应用程序是否正在运行外壳程序或Process.Start-ing或以类似方式启动exe?如果是这样,那么它就不是以这种方式作为ActiveX运行的,您可以编译为标准的exe,桌面应用程序仍然可以运行您的exe。如果是这种情况,那么,不,您不能在从桌面应用程序运行应用程序时调试应用程序。您可以使用命令行parms在IDE中运行exe进行调试,无需使用桌面应用程序。但我现在还不完全清楚您在做什么。或者-您可能需要设置组件的启动模式。选择“项目属性”、“组件”选项卡,然后选择“ActiveX组件”而不是“独立组件”。然后,当按F5启动程序时,它将等待程序被实例化(通过桌面应用程序)。