关闭应用程序时出现内存错误

Vis*_*ari 0 delphi delphi-7

在Delphi 7中关闭应用程序时,出现以下错误:

“ 0x011c34a6处的指令引用了0x018333f4处的内存。无法读取该内存。”

知道是什么原因导致此问题吗?

Dav*_*nan 5

这是访问冲突异常。当您的程序尝试访问无效的内存地址时,将引发此错误。

最明显的原因是您正在访问已释放并返回系统的内存。我建议您在调试器下执行,并让调试器在引发异常的代码处中断。这将告诉您要引用的对象,然后必须弄清楚对象销毁后为什么要引用它。

话虽如此,指令指针值0x011c34a6看起来并不像您的exe文件(基于0x00400000)中的值。因此,也许在DLL中引发了异常,这可能会使故障调试起来更加棘手。

我建议您将FastMM内存管理器与完整的调试选项一起使用,而不要使用Delphi 7中的默认BorlandMM。FastMM有许多调试工具可帮助您定位和诊断此类故障。它可能有助于查明此故障,但如果不能,则肯定会帮助您将来找到其他故障。