【发布时间】: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,它是一种跨模块使用的公共类型,在尝试编译代码时会破坏内部状态。随机地,它并不总是失败。我没有修复,解决方法是用一个类替换它。