vb6用户定义类型未定义完全编译时出错

vb6用户定义类型未定义完全编译时出错,vb6,Vb6,我有一些vb6代码,我已经很久没有编译了。最后一次编译正在生产中。现在,当我进行完整编译时,出现一个错误“未定义用户定义的类型”。我确信有一个引用丢失了但是没有高亮度的代码。我似乎找不到可能丢失的参考资料 任何关于我能做些什么来找到丢失的参考资料的线索都会非常有用 谢谢 Dave您需要确保在“引用”对话框中选中了相应的项目。这不在代码范围内,它们列在VBP文件()中 编辑校正的参考存储。谢谢在这件事让我发疯之前,我已经经历过了!!但后来我发现: 在上使用二进制兼容性进行编译时发生。上述解决方

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

任何关于我能做些什么来找到丢失的参考资料的线索都会非常有用

谢谢


Dave

您需要确保在“引用”对话框中选中了相应的项目。这不在代码范围内,它们列在VBP文件()中


编辑校正的参考存储。谢谢

在这件事让我发疯之前,我已经经历过了!!但后来我发现:

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

您可以尝试其他步骤:

  • 不要关闭BC,而是寻找那些 最近发生了变化
  • 搜索C:drive和dev文件夹并删除任何 *.oca文件
  • 还可以在vbp文件中查找任何oca引用

确保所有对象类型拼写正确。拼写
Variant
Variant
等简单错误也会导致此错误。

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

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


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

您是否尝试过
上的
选项显式
您能为我们粘贴变量定义吗?这将有助于确定所需的必要参考资料(如果有)。这是一个包含大约250个表单、类和模块的项目。如果我能缩小代码的范围,只发布有问题的区域,那就太好了。但是没有办法做到这一点。是的,option explicit设置为on everywhere。尝试使用
find/I“Dim”*
这将为您提供所有变量声明。整理出独特的,并从那里开始消除。您是否有一个“最后已知的良好”配置来比较任何更改?好的。。。我理解您的要求,但不确定如何执行查找/I。我知道vb6查找对话框。。。如何键入命令?立即窗口返回一个错误。谢谢你的帮助!对问题是,大约有40个项目已经检查过,而很多项目没有检查过。这个错误没有给我更多的信息。我正在寻找一种方法来定位缺少的引用。引用窗口可能有一个带有“(缺少)”后缀的窗口。引用以某种方式由IDE处理:它们列在VBP文件中,该文件是一个文本文件。在版本控制中有VBP吗?您是否可以查看用于构建上次编译的VBP,并查看是否引用了某个当时未被引用的内容?当二进制文件是兼容性引用时,您也可能会遇到覆盖二进制文件的问题。将上次生成的版本二进制文件复制到另一个文件夹,并在该文件夹上设置兼容性。Microsoft倾向于移动或删除其网站上的内容。上面的链接毫无意义。但它应该突出显示它。Office 2007(它没有突出显示)