单步执行.NET Class包装的VB6 COM对象

时间:2011-06-16 05:05:47

标签: c# vb.net debugging vb6 interop

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

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

我从哪里开始?有没有办法将Debugger.Launch()等价物插入到VB6项目中?任何帮助将不胜感激!!

1 个答案:

答案 0 :(得分:8)

取自robgruen's blog

  

如果您正在使用互操作来调用VB6 ActiveX DLL或exe   需要调试你的VB6项目,你可能会发现自己都有   VS.NET和VB6 IDE打开。这当然可以远离   高效。

     

通常将VB6项目设置为“等待组件”   创建“并启动您的.NET应用程序然后点击其中的断点   VB6组件。嗯,有一个更简单的方法来做到这一点。您可以   实际上在VS.NET中调试你的VB6组件。这就是你需要的   要做:

     

1)用符号构建你的VB6项目。在VB6中打开你的vbp文件   并转到“Project-> Properties。”选择“compile”选项卡并检查   “编译为本机代码。”然后选择“无优化”无线电   按钮并选中“创建符号调试信息”。

     

这将生成.PDB(程序数据库)文件以及您的   。可执行程序。这个文件包含VS.NET的调试信息   调试器可以排列源和命中断点等。(确保你   您的VB6 DLL集上具有二进制兼容性,否则您将不得不放弃   并在VS.NET中重新添加对VB6组件的引用。)

     

2)在VS.NET中打开.NET项目。

     

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

     

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

     

5)向“调试源文件”添加指向路径的条目   源代码用于VB6组件。

     

6)将“Debug Symbols Files”添加到指向该文件夹的条目   其中.PDB文件是在步骤1中生成的。

     

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