使用LINK.EXE和C2.EXE手动编译VB6项目

时间:2018-08-30 22:47:48

标签: compilation linker vb6 windows-10

在尝试编译我的项目时,我想避免使用VB6.exe应用程序。它倾向于创建* .obj文件,然后崩溃,不知道出了什么问题。

"c:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE" /m MyProject.vbp

我想尝试使用LINK.exeC2.exe来编译我的应用程序。我在所有开关等的过程中发现了一个真正的great article located here。我希望有人尝试了某种链接并将其成功,因此他们可以准确地告诉我我需要使用哪些开关以及如何逐步进行操作。创建目标文件,然后将它们全部链接到EXE。

1 个答案:

答案 0 :(得分:2)

我最终得到了这个旧的源代码进行编译。我确定我的处境是独特的,但是我想我希望能在遇到这种情况时帮助别人找到自己的路。

首先,我无法编译这个项目来最终挽救我的生命。首先,它将在IDE中进行编译,然后仅在命令行中运行以下命令...

"c:\Program Files (x86)\Microsoft Visual Studio\VB98\VB6.EXE" /m MyProject.vbp

然后甚至无法正常工作,我不得不使用打包和部署向导来编译它,但有时可以正常工作。

我认为这实际上只是最后的成功或失败。但是在某些时候,指向我拥有的特定模块文件的东西用于访问(读/写)注册表。我认为这是在查看日志甚至Windows事件查看器等之间。因此,我开始思考...如果不使用它,它将进行编译。因此,我从项目中删除了模块,尝试进行编译,然后VB很好地向我展示了每个调用,因为调用的函数不存在,这些调用不起作用。我也注释掉了所有这些内容,然后我只需很少的努力就可以进行编译,并且再次运行顺利!

因此,这帮助我确定了VB即将推出的产品,但是它不能解决突出的问题(我无法编译所有源代码)。因此,我开始尝试将所有源代码一一地工作回应用程序中,以查看将在何处中断。

  1. 我首先将模块文件添加到项目中,然后进行编译。

    Success!
    
  2. 然后,我尝试取消注释掉的第一件事(对该模块中功能的引用),然后重新编译。

    Success!
    
  3. 我设法将所有注释掉的代码行重新找回,并将它们放回原来的状态。然后我重新编译了最后一次。

    Success!
    

因此,在这一点上,我将一切恢复到我开始尝试编译之前的方式。现在,它完全没有问题了!

相关问题