加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb6 – 如何与其他程序员共享VB项目克服vbp“引用”问题?

发布时间:2020-12-17 07:24:06 所属栏目:百科 来源:网络整理
导读:我有这个旧的VB6项目,它由一些DLL,OCX和GUI组成. 有一个GUI组件,它包含在它的VBP文件中: Type=ExeReference=*G{00020430-0000-0000-C000-000000000046}#2.0#0#C:WindowsSysWOW64stdole2.tlb#OLE AutomationObject={EAB22AC0-30C1-11CF-A7EB-0000C05BAE0
我有这个旧的VB6项目,它由一些DLL,OCX和GUI组成.

有一个GUI组件,它包含在它的VBP文件中:

Type=Exe
Reference=*G{00020430-0000-0000-C000-000000000046}#2.0#0#C:WindowsSysWOW64stdole2.tlb#OLE Automation
Object={EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}#1.1#0; ieframe.dll
Object={3050F1C5-98B5-11CF-BB82-00AA00BDCE0B}#4.0#0; mshtml.tlb
Reference=*G{64E54C86-D847-48F7-9AE5-D6C9B8E6A3A2}#3.0#0#....binCrypt.dll#Crypt
Reference=*G{B3E7F95C-B6D9-458E-B4D4-5272759B139A}#4.0#0#....binSpeechMike.dll#SpeechMike_DLL
Object={831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.1#0; MSCOMCTL.OCX
Object={AB4F6C60-4898-11D2-9692-204C4F4F5020}#29.0#0; Ccrpsld.ocx
Object={48E59290-9880-11CF-9754-00AA00C00908}#1.0#0; msinet.ocx
Object={9C526969-AA6E-4D61-BAFA-117FD20C2B38}#3.0#0; SpeechMike.ocx

参考设置很痛苦,因为它们总是从一台机器更改为另一台机器.我的意思是,GUID’9C526969-AA6E-4D61-BAFA-117FD20C2B38′,作为一个例子的最后一个,将在我的系统上,但在别人的机器上的其他东西.

现在,为了使它工作,我删除了Crypt.dll和SpeechMike.dll的引用.还有Object SpeechMike.ocx.否则,Visual Studio会查找不存在的内容.然后在“project> references”中我检查Crypt和SpeechMike,并且Reference返回到具有正确GUID和版本的VBP.最后,在’项目>组件’我添加了OCX,我很高兴.

我错了吗?我如何与其他人共享项目,而无需通过循环和循环来启动项目?

我正在使用MS Visual Basic 6(VS 6企业的一部分).

解决方法

这听起来像“无法保持二进制兼容性”.通常你只对自己这样做,但是如果有多个人从源项目文件中编译你的库,那么当然会让你头疼.

当您创建ActiveX EXE,DLL和OCX时,您需要创建一个“基础”版本,其中分配类型和类ID值(GUID).文档甚至建议您执行此操作,将过程留空:只需注释行或其他内容,以便IDE不会删除空声明.

您不必使用“空”基本参考库,它可以是包含完整代码的库.

编译完该基线库后,您将退出并保存项目.然后将此“空”库重命名为其他内容,并从那里将其与项目源文件一起保存.

在此之后,重新打开项目并进入项目属性,在“组件”选项卡上将“兼容性”设置更改为“二进制兼容性”,然后在框中输入已编译基准库的完整路径和名称.保存项目.现在您可以添加代码并编译其他程序使用的“真实”库.

当您将这些库(DLL,OCX)以源代码形式分发给其他人以便他们可以编译它们时,您必须提供此重命名的编译基线库以及源代码文件,VBP文件,资源文件等.

从那里你的GUID将是稳定的,直到你改变破坏二进制兼容性的东西(改变方法的参数列表等).

有关详细信息,请参阅联机帮助(MSDN Library).看到:

Using Visual Basic|Component Tools Guide|Creating ActiveX Components|Debugging,Testing,and Deploying Components|Version Compatibility in ActiveX Components

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读