VB6命令行编译

6

有人知道如何从命令行编译vb6 webclass dll吗?我正在尝试构建一个用于自动化版本构建的工具,但是它失败了,并显示了一个“在文件'[文件名]'的第xxxx行处编译错误:变量未定义”的警报。


1
当你说“它失败了”时,请告诉我们确切地哪里失败了(即,给出您正在使用的实际命令行)。否则,每个人都必须猜测。 - Michael Burr
3个回答

10

已知错误

症状

当使用命令行参数编译包含WebClass设计器的Microsoft Visual Basic项目时,可能会遇到错误。

原因

当使用命令行参数/MAKE来编译应用程序时,如果与设计器(.DSR)相关的.DCA文件不在与.DSR文件相同的目录中,则编译期间可能会出现错误。 .DCA文件包含编译项目所必需的类型库信息。

解决方法

请使用以下其中一个解决方法来无误地编译该项目:

  • 在Visual Basic中打开该项目,并对项目进行更改。任何更改都可以,例如在项目中输入空格,然后删除空格即可。关闭Visual Basic,并保存更改。这将在存储.DSR文件的同一目录中重建应用程序的.DCA文件。
  • 在Visual Basic集成开发环境(IDE)内部编译该应用程序。这也将重建应用程序的.DCA文件。

状态

Microsoft已确认这是本文开头列出的Microsoft产品中的一个错误...


2
有没有已知的解决方法可以在不使用集成开发环境的情况下编译它? - Michal Dymel
1
@MichalDymel 我刚刚使用了一个编译好的AutoHotKey脚本来打开VB6并编译所需的文件。虽然不是最佳选择,但它可以工作。可以实现自动化,而且简单易操作。 - Dodzi Dzakuma

5

听起来你需要按下CTRL-F5,查看编译错误。VB6允许您在仍然存在无法通过编译器的错误时进行调试,可能有一些问题需要解决。这是一个从批处理文件中命令行编译的示例。

set vssdir=c:\_vss\
VB6 /MAKE "%vssdir%Project.vbp" /outdir "%vssdir%testbuild"

3
从IDE编译项目没有任何错误。我使用了你写的同样方法,但是出现了错误。你用这个方法来构建webclass dll吗? - Michal Dymel

0

代码在调试器中能否编译运行?
通过运行 "vb6.exe /?" 命令来查看可用开关的帮助文档。
类似这样:

path_to_vb6_exe /l path_to_my_project_name

应该可以运行。我想是 /l 而不是 /m,因为它是一个 WebClass DLL,所以会成为 ActiveX。每当我在命令行中运行 VB6,并报告像您所描述的错误时,都是因为代码无法构建。

但是,从命令行运行时,它确实有一些怪癖。我发现,如果在 IDE 中设置了用户控件的自定义选项卡,则从命令行编译将始终失败。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接