需要有关调试.net应用程序中使用的vb6代码的帮助

时间:2013-07-22 10:26:27

标签: .net vb6

我的.Net应用程序正在使用一些vb6控件和库。我无法通过.net应用程序调试vb6代码。任何人都可以帮助我,我如何调试在.net应用程序中使用用户控件的vb6代码。

4 个答案:

答案 0 :(得分:2)

尝试此建议,找到here

1。使用符号构建VB6项目。

在VB6中打开你的vbp文件并转到“Project-> Properties。”选择“编译”选项卡并选中“编译为本机代码”。然后选择“No Optimization”单选按钮并选中“Create Symbolic Debug”信息。“

这将生成一个.PDB(程序数据库)文件和.EXE。此文件包含调试信息,因此VS.NET调试器可以对齐源和命中断点等。(确保您的VB6 dll集具有二进制兼容性,或者您必须删除并重新添加对VB6的引用VS.NET中的组件。)

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

转到项目属性并选择“Configuration Properties-> Debugging”属性页并启用非托管调试。

对于VB.NET项目,此选项为“非托管代码调试”,对于C#,“启用非托管调试”。

3。选择属性。

向“调试源文件”添加一个条目,该条目指向源代码用于VB6组件的路径。

向“调试符号文件”添加一个条目,该条目指向在步骤1中生成.PDB文件的文件夹。

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

免责声明:我自己没试过。

答案 1 :(得分:2)

我已经多次这样做了,这是一篇关于如何做到这一点的好文章 MSDN。基本上你只需要在VB6中点击F5,并在你正在调查的VB6代码中设置你的断点。

.NET中的下一步确保您添加了对刚刚构建的VB6 DLL的引用,并运行.NET应用程序,它应该点击您的VB6断点(请记住VB6应用程序仍在运行,您将其保留在F5)

答案 2 :(得分:0)

我不确定你能不能做到,但我从以下link获得了一些想法:

  

如果您在解决方案资源管理器中双击我的项目并转到   在Debug选项卡中,您将看到一个选项“Start External Program”。   选择此选项并键入“C:\ Program Files \ Microsoft Visual   Studio \ vb6.exe。“(带引号)。

     

之后,在命令行中输入.vbp文件的完整路径   参数(也包括它周围的引号)。现在当你跑VS时会开火   VB6,和调试器的附加。然后你可以设置并点击   以你习惯的正常方式断点。

     

或者你也可以使用工具 - >附加到进程来执行此操作,但是   我个人认为第一种方法更容易。你设置了一次   那你再也不用担心了。

     

要注意的一件事是,如果你在VS2005中点击Stop,你的VB6程序   将退出而不提示您保存,因此如果您进行任何更改   您的VB6项目确保在按F5之前单击“保存”(在VB6中)。

     

希望有所帮助,如果您对此有任何疑问,请告诉我们。

答案 3 :(得分:-1)

您无法在Visual Studio中以高于编译汇编代码的任何级别调试VB6代码。如果你有源代码,你可以转换它。