VB6参考文献的混乱

问题描述 投票:0回答:1

我是一名.NET开发人员。 我对.NET中的引用是如何工作的有很好的理解,即如果你想在AssemblyB.classB.MethodB中使用AssemblyA.ClassA.MethodA,那么你在AssemblyA中添加一个引用到AssemblyB中。

我正在看一个VB6应用程序,当我打开它时,我得到一个错误,即加载过程中的错误。 参考frmMain.log。 我打开frmMain.log,它说:"2142:控件CommonDialog1的MSComomDlg.CommonDialog类不是一个加载的控件类。"。 我用WinMerge将有问题的项目中的源代码与之前的项目版本(该项目没有这个问题)进行了比较。 唯一不同的是,有问题的项目在client.vdp文件中包含以下一行。

Reference=*\G{08DBEFD7-6A19-4DCE-A533-5BDBB93683C8}#1.2#0#..\..\..\..\..\Windows\SysWOW64\Comdlg32.oca#Microsoft Common Dialog Control 6.0 (SP3)

删除这行似乎可以解决问题。 为什么这样就能解决问题?


我已经用Winmerge比较了昨天的项目修订版(没有这个问题)和今天的项目修订版(有这个问题)。唯一不同的是原帖中VBP文件的引用。

vb.net vb6
1个回答
1
投票

我假设有人在不同的机器上安装了这个控件的开发版,然后对它设置了一个引用。当你试图在你的机器上打开项目时,引用失败了。或者这个控件被卸载了。似乎项目没有使用该引用,可以安全地删除该引用,因为没有该引用,它仍然可以编译。

然而,我看到vb6实际上在这种情况下从相关表单中删除了非授权控件。因此,你现在可以编译了,因为表单缺少了一个之前存在的组件。你是否检查过frmMain没有改变,包括.frm和.frx文件?

© www.soinside.com 2019 - 2024. All rights reserved.