这是使用DelphiWindows4.99和FastMM 4.99,以及Win7-64机器上的32位程序。
我正在尝试使用FastMM来检查我一直在开发的一个小程序。该程序包括一个数据模块,该模块位于项目的自动创建的表单列表中。数据模块只包含一个TADOConnection对象。
当我在FastMM中启用FullDebugMode时,我在退出程序时得到一个无效的类型转换错误。罪魁祸首似乎是释放了数据模块(错误发生在TADOConnection.GetADODataSet中)。有没有人能告诉我为什么会发生这种情况?
发布于 2012-09-21 05:19:30
事实证明,问题只是由FastMM暴露出来的,而不是由它引起的。
具体地说,我已经将TADOQuery子类化,以便与数据模块一起使用。我记得为这个类写了一个析构函数重写,但是没有调用继承的dtor。这可能导致TADOConnection做了一些未定义的事情。
发布于 2012-09-21 02:18:10
在没有更多信息的情况下,很难准确地说出来,但当你在释放某些东西时遇到问题时,通常是因为它试图释放已经释放的东西。在看到这个错误之前,尝试设置一些断点,看看是否有涉及到的类正在被释放。如果是这样的话,这应该会帮助你找到它。
https://stackoverflow.com/questions/12518416
复制相似问题