我有一个由.NET类包装的VB6对象。据我所知,只需运行VB6库并在所需位置插入断点即可逐步执行VB6对象。
然而,这似乎并不适用于我的情况。我试图重新编译VB6对象并在我的.NET项目中重新引用它,但这似乎没有帮助。
我从哪里开始?有没有办法将Debugger.Launch()
等价物插入到VB6项目中?任何帮助将不胜感激!!
答案 0 :(得分:8)
如果您正在使用互操作来调用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,你可以在文件中放置断点。一旦你调试了 调试器将在这些代码行上停止。