如何在visual basic 6.0中进行开发和构建

时间:2008-12-18 17:58:13

标签: vb6

我正在寻找构建多个可视化基础项目(所有dll)的最佳实践。我们有多个项目,我们的最终可交付成果将是一个dll。现在,一个项目使用另外两个项目,另一个项目引用另一个项目。项目应该引用vbp文件还是dll?如果他们引用vbp文件,如何构建所有项目?

3 个答案:

答案 0 :(得分:2)

使用VB6几年后,我们的项目倾向于这样结构:
所有项目源(项目和源)都在源文件夹下组织 \项目\源
\项目\源\ PROJECT1 \
\项目\源\项目2 \
...
一个bin文件夹中的所有二进制文件(.dll和.exe) \项目\ BIN \

所有.dll设置为二进制兼容单个bin diretory中的结果文件。

在初始构建之后使二进制复用稳定,每个非破坏构建都会 通过使用放在源文件夹上方的文件夹中的简单命令文件build.cmd来完成,可能是这样的:
“c:\ Program Files \ Microsoft Visual Studio \ VB98 \ VB6.EXE”/ M。\ source \ project1 \ proj1.vbp
“c:\ Program Files \ Microsoft Visual Studio \ VB98 \ VB6.EXE”/ M。\ source \ project2 \ proj2.vbp
“c:\ Program Files \ Microsoft Visual Studio \ VB98 \ VB6.EXE”/ M。\ source \ project3 \ proj3.vbp
del。\ bin \ * .ex
del。\ bin \ * .lib

构建顺序必须按依赖顺序排列 每当发生断裂变化时,必须将依赖的VB项目引用到新的二进制文件中 在不破坏更改的情况下,build.cmd通常可以完成这项工作。

答案 1 :(得分:1)

除非您从VB外部专门管理类型库,否则应使用项目引用。如果您引用文件,并以各种方式修改公共接口,VB将为类型库中的各个部分生成新的id,这将导致类型不匹配错误。

您可以使用“保留兼容性”设置来帮助缓解此问题。确保你至少使用项目级别(如果你做COM +然后你想要二进制基于已经编译的dll版本的那个)

至于编译,你可以编译一个解决方案文件(很长一段时间以来,我甚至安装了Vb6,但我认为它们是.vbg文件)。

当天我们使用了Visual Build,还支持编译解决方案文件的Visual Make

答案 2 :(得分:1)

您可以从最低级别开始单独编译每个项目,然后逐步完成链接。

使用VB6构建的大问题通常可以追溯到兼容性问题。最坏的情况下兼容性问题修复就像这样

构建A(A是所有其他人引用的那个)

将A复制到兼容性目录

构建B,引用A

将B复制到兼容性目录

构建引用B和A的C

将C复制到兼容性目录中。

等等。

这是因为COM DLL的类型库使用INCLUDE来添加它们引用的项目的类型库。您可以使用Visual Studio 6.0附带的OLE视图工具查看VB6 COM DLL的类型库。

很多时候添加方法或属性会导致DLL无法编译,因为设置Typelib的MS方法使它们不是二进制兼容的。如果在二进制兼容性规则下允许添加,则会失败。

90%的时间工作的解决方案是始终将最新版本的DLL引用到兼容性目录中。

一旦你有一个好的集合,你可以让一个自动化的构建器使用它来自动构建项目。

请注意,仅当您添加其他DLL引用的内容并且需要保持二进制兼容性时才会出现此问题。

您需要一个系统来确保每个人都有正确的兼容性DLL集来构建。