我有一个用包构建的Delphi exe。 exe处理成功,但在关机时,我收到错误。我重建了exe,然后使用MadExcept错误记录软件重新编译了exe之一的DLL。它将异常“MouseTrackingTimerList.Count<> 0”跟踪到devexpress cxcontrols单元的最终版本中。该低级单位中没有任何内容被更改。有关可能导致此错误的原因的任何建议?
答案 0 :(得分:2)
好吧,你没有说它导致了什么异常,但是我看到套件发生的一件事是,如果你的终结是从另一个包引用某个东西,并且该包已经被卸载,那么引用是坏的并且会发出访问冲突,或者有时会发出无效的指针操作。
确保MouseTrackingTimerList仍然可用,并确保它实际上是它正在尝试做的事情。如果您正在使用单元中的全局接口引用,它将放入隐藏的最终化代码来清理它们,如果 引用了另一个包的一部分,您可能会遇到同样的问题。 / p>
要避免这种情况,请确保在程序最终化开始之前将来自其他包的所有全局接口引用设置为 nil ,并确保您的终结部分不引用其代码所在的任何对象在另一个可能在当前包之前卸载的包中。