这是使用Delphi XE2和FastMM 4.99,以及Win7-64机器上的32位程序。
我试图使用FastMM检查我一直在研究的一个小程序。该程序包含一个数据模块,该模块位于项目的自动创建表单列表中。数据模块仅包含TADOConnection对象。
当我在FastMM中启用FullDebugMode时,退出程序时出现无效的类型转换错误。罪魁祸首似乎是释放数据模块(错误发生在TADOConnection.GetADODataSet
)。谁能说明为什么会这样?
答案 0 :(得分:3)
事实证明,问题只是FastMM暴露的问题,而不是由它造成的。
具体来说,我将TADOQuery
子类化为与数据模块一起使用。我记得为类编写了析构函数覆盖,但未能调用继承的dtor。可能这导致TADOConnection
做了一些未定义的事情。
答案 1 :(得分:0)
如果没有更多信息,很难准确地说出来,但是当你在解放某些东西时遇到问题时,通常是因为它试图释放一些东西。已经被释放了。尝试放置一些断点,以查看在看到此错误之前是否已释放所涉及的任何类。如果是这样,那应该可以帮助您追踪它。