VB6 引用混淆

  • 本文关键字:引用 VB6 vb.net vb6
  • 更新时间 :
  • 英文 :


我是一名.NET开发人员。 我对引用在 .NET 中的工作方式有很好的了解,即如果您想在 AssemblyB.classB.MethodB 中使用 AssemblyA.ClassA.MethodA,那么您可以在程序集 A 中添加对程序集 B 的引用。

我正在查看一个VB6应用程序,打开它时出现错误,即加载过程中的错误。 请参阅 frmMain.log。 我打开 frmMain.log它说:"2142:类 MSComDlg.CommonDialog of control CommonDialog1 不是加载的控件类。 我使用 WinMerge 将错误项目中的源代码与项目的先前版本(没有问题)进行比较。 唯一的区别是错误的项目在 client.vdp 文件中包含以下行:

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

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


我使用 Winmerge 将昨天的项目修订版(没有问题)与今天的项目修订版(确实有问题)进行比较。唯一的区别是 VBP 文件中原始帖子中的引用。

我假设有人在另一台机器上安装了此控件的开发版本,然后设置了对它的引用。尝试在计算机上打开项目时,引用失败。或者控件已卸载。似乎该项目没有使用引用,并且可以安全地删除它,因为它仍然可以在没有引用的情况下编译。

但是,在这种情况下,我已经看到 vb6 实际上从有问题的表单中删除了未经许可的控件。因此,您现在可以编译,因为表单缺少以前存在的组件。您是否检查过 frmMain 没有更改,.frm 和 .frx 文件都没有更改?

最新更新