0

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

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

知道是什么导致了这个问题吗?

4

2 回答 2

5

那是访问冲突异常。当您的程序尝试访问无效的内存地址时会引发它。

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

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

我建议您使用带有完整调试选项的 FastMM 内存管理器,而不是 Delphi 7 中的默认 Borland MM。FastMM 有很多调试工具可以帮助定位和诊断此类故障。它可能有助于追查此故障,但如果不是,它肯定会帮助您在将来找到其他故障。

于 2012-08-17T11:02:32.643 回答
1

维沙尔。我可能是几件事。如果您试图释放或访问在您的代码中已经释放的东西,这将会发生。如果您逐步完成在应用程序关闭期间执行的代码,您可能会发现错误。你在使用线程吗?

于 2012-08-17T11:05:22.393 回答