通过.NET类包装的VB6 COM对象

本文关键字:VB6 COM 对象 包装 NET 通过 | 更新日期: 2023-09-27 17:59:11

我有一个由.NET类包装的VB6对象。据我所知,只需运行VB6库并在所需位置插入断点,就可以逐步遍历VB6对象。

然而,这似乎对我的情况不起作用。我试图重新编译VB6对象,并在.NET项目中重新引用它,但这似乎没有帮助。

我该何去何从?有没有办法将Debugger.Launch()等效项插入VB6项目中?任何帮助都将不胜感激!!

通过.NET类包装的VB6 COM对象

从robruen的博客中获得:

如果您正在使用interop调用VB6 ActiveX dll或exe,并且需要调试你的VB6项目,你可能会发现自己两者都有VS.NET和VB6 IDE打开。这肯定远非如此有效率的

通常,您将VB6项目设置为"等待组件created",然后启动.NET应用程序,然后在VB6组件。好吧,有一种更简单的方法可以做到这一点。你可以在VS.NET中实际调试VB6组件要做的事:

1) 使用符号构建VB6项目。在VB6中打开您的vbp文件然后转到"项目->属性"。选择"编译"选项卡并选中"编译为本机代码。"然后选择"无优化"单选框按钮并选中"创建符号调试信息"

这将生成一个.PDB(程序数据库)文件以及.EXE。此文件包含调试信息,因此VS.NET调试器可以排列源代码并命中断点等。(请确保VB6 dll集具有二进制兼容性,否则您将不得不删除并在VS.NET中重新添加对VB6组件的引用。)

2) 在VS.NET.中打开您的.NET项目

3) 转到项目属性并选择"配置属性->调试"属性页,并启用非托管调试
对于VB.NET项目,此选项为"非托管代码调试",对于C#是"启用非托管调试"。

4) 选择解决方案的属性页。

5) 在"调试源文件"中添加一个指向路径的条目其中源代码用于VB6组件。

6) 在"调试符号文件"中添加一个指向文件夹的条目其中.PDB文件是在步骤1中生成的文件。

7) 现在,您应该可以在中打开.bas、.cls、.frm等文件VS.NET,您可以在文件中放置断点。一旦调试调试器将在这些代码行上停止。