2

这是使用 Delphi XE2 和 FastMM 4.99 以及 Win7-64 机器上的 32 位程序。

我试图使用 FastMM 来检查我一直在研究的一个小程序。该程序包括一个数据模块,该模块位于项目的自动创建表单列表中。数据模块只包含一个 TADOConnection 对象。

当我在 FastMM 中启用 FullDebugMode 时,退出程序时出现无效的类型转换错误。罪魁祸首似乎在于释放数据模块(错误发生在 中TADOConnection.GetADODataSet)。谁能建议为什么会这样?

4

2 回答 2

3

事实证明,问题只是 FastMM 暴露的问题,而不是由它引起的。

具体来说,我将子类TADOQuery化以与数据模块一起使用。我记得为该类编写了一个析构函数覆盖,但未能调用继承的 dtor。可能这导致了TADOConnection做一些未定义的事情。

于 2012-09-20T21:19:29.577 回答
0

没有更多信息,很难准确地说出来,但是当你在释放某些东西时遇到问题,通常是因为它试图释放已经被释放的东西。尝试放置几个断点以查看是否有任何涉及的类在您看到此错误之前被释放。如果是这样,那应该可以帮助您追踪它。

于 2012-09-20T18:18:09.930 回答