【问题标题】:Ambiguous "User-defined type not defined" Error模棱两可的“未定义用户定义类型”错误
【发布时间】:2014-07-30 04:17:55
【问题描述】:

一般情况下,当“未定义用户定义类型”错误发生时,项目中的一段代码会在 VB6 UI 上显示并突出显示,以向用户显示 IDE 无法创建的用户定义类型关联。

然而,在我的例子中,这个错误没有弹出框架/代码,让我不知道这个糟糕的软件无法找到哪个用户定义的类型。

这个项目非常庞大,包含数百个不同的参考和组件。 Project -> References 显示没有“丢失”。有关如何找出 IDE 无法找到的用户定义类型的任何想法?

【问题讨论】:

  • 当该窗口弹出时,使用 Spy++ 找出该窗口属于哪个线程。然后,使用调试器(例如 WinDbg、Visual Studio)检查该线程的调用堆栈。
  • @PauloMadeira:这不会成功,因为它需要太多的 WinDbg 功夫(检查本地和全局变量 w/o PDB 文件?)
  • 是的;同意wqw。我需要一个不同的解决方案或更多关于在调用堆栈中寻找什么的信息。此外,我在使用这些类型的工具方面的经验非常有限(使用 ollydbg 的经验不到几个小时)。 wqw有更好的主意吗?
  • 我有一个非常相似的问题。那是15年前的事了,所以不能这么确定细节。不得不致电 Microsoft 支持寻求帮助,并让一名升级工程师来处理它。 IIRC,它是一种跨模块使用的公共类型,在尝试编译代码时会破坏内部状态。随机地,它并不总是失败。我没有修复,解决方法是用一个类替换它。

标签: dll com vb6 ocx


【解决方案1】:

尝试为组中的每个项目设置项目兼容性,并在 IDE 中使用Ctrl+F5 启动应用程序。

尝试从命令行编译——查看vb6.exe /?了解更多信息。

【讨论】:

  • 这两种解决方案都有效!再次感谢wqw。让我给你买杯啤酒。
猜你喜欢
  • 2012-05-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多