我们在VB 6.0中有多个项目。这些项目中的大多数都是ActiveX DLL。在开发时,项目采用其他项目的“.dll”引用,但这不允许我们进行调试。因此,为此,我们必须参考'.vbp'项目。但是,采用项目引用意味着我们需要二进制兼容性。
在开发期间,我们是否应该使用项目兼容性并将项目构建到DLL中以进行部署?
答案 0 :(得分:2)
在开发过程中引用vbp很好,只需确保保持二进制兼容性。如果你不这样做,你将使注册表陷入混乱,部署将是一场灾难。但请记住,即使使用二进制兼容性,每次更改DLL的公共接口时,都要在注册表的OLE条目中创建转发引用。
答案 1 :(得分:1)
我们在我公司的切割机上使用的CAD / CAM软件中有四个级别的DLLS。我们通过创建PREVIOUS版本的DLL的兼容性目录来处理这个问题。有了这个,我们可以继续使用二进制兼容性。
这个过程看起来像这样。
您需要注意的主要问题是更改您使用的最低级别的DLL。 Visual Basic 6使用#include语句生成其内部类型库。如果仍然是二进制兼容,那么就需要让它感到困惑。请注意,您可以使用Visual Studio 6附带的OLE视图工具看到这一点。
解决此问题的方法是编译低级DLL并立即将其放入兼容性目录中。现在,更高级DLL的内部类型库将正确检测您是否与二进制兼容。
记住二进制兼容性意味着您可以做的就是添加方法或属性。您无法更改现有方法的名称或参数列表。 (它以COM术语签名)
答案 2 :(得分:1)
您应该能够调试引用dll。你是否以正确的顺序开始了项目?或者您可以将所有/某些dll添加到相同的“项目组”(* .vbg)中。