【问题标题】:vb6 user-defined type not defined error on full compile完整编译时vb6用户定义类型未定义错误
【发布时间】:2012-06-25 23:28:26
【问题描述】:

我有一些很久没有编译的vb6代码。最后一次编译正在生产中。现在,当我进行完整编译时,出现错误“未定义用户定义的类型”。我确定有一个参考缺失但没有高亮的代码。而且我似乎找不到可能丢失的参考。

任何关于我可以做些什么来找到丢失的参考资料的线索都会非常有帮助。

谢谢!

戴夫

【问题讨论】:

  • 你试过Option Explicit On
  • 您能帮我们粘贴您的变量定义吗?这将有助于确定所需的必要参考资料(如果有的话)
  • 这是一个包含大约 250 个表单、类和模块的项目。如果我可以缩小代码范围以仅发布有问题的区域,那就太好了。但是没有办法做到这一点。而且,是的,选项显式设置为在任何地方。
  • 尝试使用find /I "Dim " * 这将为您提供所有变量声明。整理出独特的并从那里开始消除。您是否有“最后一次正确的”配置来比较任何更改?
  • 好的...我明白你在问什么,但不确定如何查找 /I。我知道 vb6 查找对话框...如何键入命令?即时窗口返回错误。感谢您的帮助!

标签: vb6


【解决方案1】:

在它让我发疯之前我已经发生过这种情况!但后来我发现了这个:

http://support.microsoft.com/kb/190197

在打开二进制兼容性进行编译时发生。上述解决方案建议关闭二进制兼容性并重新编译 - 然后将突出显示缺少的引用。

您可以尝试的其他步骤:

  • 与其关闭所有的 BC,不如寻找具有 最近改过
  • 搜索 C: drive and dev 文件夹并删除任何 *.oca 文件
  • 还可以在 vbp 文件中查找任何 oca 引用

【讨论】:

  • 当这是您的兼容性参考时,您也可能会遇到覆盖二进制文件的问题。将最后构建的发布二进制文件复制到不同的文件夹并设置兼容性。
  • Microsoft 倾向于移动或删除其网站上的内容。上面的链接无处可去。
【解决方案2】:

您需要确保在“参考”对话框中选中了相应的项目。这在代码之外,它们列在 VBP 文件 (text file) 中。

EDIT 更正了参考存储。谢谢MarkJ

【讨论】:

  • 是的...问题是已经检查了大约 40 项,而很多没有。错误没有给我更多信息。我正在寻找一种方法来查找缺少哪个参考。
  • 参考窗口可能有一个带有“(缺失)”后缀的窗口。
  • IDE 以某种方式处理引用:它们列在 VBP 文件中,这是一个文本文件 as explained in the VB6 manual。你有版本控制中的 VBP 吗?你能看看用于构建最后一次编译的 VBP,看看当时是否引用了某些东西,现在没有引用吗?
【解决方案3】:

确保所有对象类型都拼写正确。像拼写 Variant Varient 这样的简单错误也可能导致此错误。

【讨论】:

  • 但它应该突出显示它。
  • Office 2007(没有突出显示)
【解决方案4】:

您是否仍在使用进行原始编译的同一台机器和/或使用相同的操作系统 ?

如果答案是否定的,那么 VB6 或类似版本有可能链接到在 Win7 或更高版本中不再可用的引用,如果您使用的是现代版本的工作室,这也可能包括编译器。

由于代码也在 VB6 中,如果您使用任何外部商业控件,并且如果不在同一台机器上,那么如果您没有通过库移植,您也会丢失这些链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    相关资源
    最近更新 更多