Vb6 项目引用不断恢复

Vb6 项目引用不断恢复,vb6,Vb6,我有3.vbp项目是一个小组的一部分 我能够使dll的3和2,当我想使dll的1 我正在将项目引用1设置为项目2的正确dll 但是,当我保存更改并重新打开vbg文件时。我所更改的引用不会显示,它会还原回dll的其他版本 我没有在COM工作过,我无法前进。 非常感谢您的任何输入或支持。当您参考ActiveX或COM DLL和EXE时,您几乎无法控制实际使用哪个DLL或EXE文件,因为VB6严格地从GUID和Windows注册表工作。使用VB6和ActiveX以及保持头脑清醒的关键是理解二进制兼容性

我有3.vbp项目是一个小组的一部分

我能够使dll的3和2,当我想使dll的1

我正在将项目引用1设置为项目2的正确dll

但是,当我保存更改并重新打开vbg文件时。我所更改的引用不会显示,它会还原回dll的其他版本

我没有在COM工作过,我无法前进。
非常感谢您的任何输入或支持。

当您参考ActiveX或COM DLL和EXE时,您几乎无法控制实际使用哪个DLL或EXE文件,因为VB6严格地从GUID和Windows注册表工作。使用VB6和ActiveX以及保持头脑清醒的关键是理解二进制兼容性。(见附件)

以下是我对ActiveX/COM项目(无论是EXE、DLL还是OCX)的建议:

(1) 了解二进制兼容性设置

(2) 使用.cmp作为参考可执行文件的后缀是一种很好的做法,例如Project1.dll.cmp。当你查找二进制兼容性时,你就会明白我的意思了

(3) 在VirtualPC中开发VB6 ActiveX项目;VB6 ActiveX开发会对Windows注册表造成很大的磨损

(4) 当VB有理由定位ActiveX对象时,Reference=设置中DLL/EXE/OCX的文件路径将更改;它将与它在注册表中找到的任何内容(最新注册的wins)一起使用。此外,还有“升级ActiveX控件”设置可以进行更改的项目属性


(5) 对于VB6将生成的GUID或类型库,除了通过适当的二进制兼容性管理可以达到的程度外,您几乎没有控制权。

如果对在VB6中编译的DLL/OCX使用二进制兼容性选项,则在重新编译内容后,现有VB6项目中的引用将被破坏。我们经常处理这个“问题”,所以我们实现了我们的方法来自动替换现有.vbp项目中对ActiveX的引用。该实用程序是免费的、开源的,而且很可能会为处于类似情况的其他人节省大量时间