我可以单独使用VS2013单步执行VB6代码吗?

时间:2015-01-22 20:07:20

标签: visual-studio-2013 vb6

我最近继承了一个旧的VB6项目,包含内置的二进制文件,源代码,项目文件等,但没有pdb文件。有什么方法可以启动这个VB6应用程序并使用VS2013工具逐步完成它?或者我是否需要安装VB6 IDE?

2 个答案:

答案 0 :(得分:1)

您不能直接在VS .NET中直接打开VB6项目。

但是您所想到的可能是通过Visual Studio调试已编译的VB6的过程。假设您可以重新编译VB6模块以包括PDB文件,则这是可能的。没有它们,我认为这将无法很好地发挥作用。

  

Debugging VB6 binaries in Visual Studio .NET , by robgruen November 9, 2004

     

如果您正在使用互操作调用VB6 ActiveX dll或exe,并且您   需要调试您的VB6项目,您可能会发现自己同时拥有   VS.NET和VB6 IDE打开。这肯定可以远离   

     

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

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

         

    在VB6中打开您的vbp文件,然后转到“ Project-> Properties”。选择   “编译”标签,然后选中“编译为本机代码”。然后选择   “无优化”单选按钮,然后选中“创建符号调试信息”。

         

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

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

  4.   
  5. 转到项目属性,然后选择“配置属性->调试”属性页并启用非托管调试。

         

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

  6.   
  7. 选择解决方案的属性页。

  8.   
  9. 在“调试源文件”中添加一个条目,该条目指向VB6组件的源代码所在的路径。

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

  12.   
     

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

答案 1 :(得分:-1)

如果你能获得VB.NET 2003,2005或2008的副本,那就是能够将VB6项目转换为VB.NET项目的VB.NET版本。以后的VB.NET版本不会在VB6项目上打开/运行。

所以,你的选择是VB 6,或VB 2003,2005或2008(或者是VB.Net的现代版本......以及很多手动转换代码的工作。我希望它不是一个很大的应用程序。)