在Delphi 7中关闭应用程序时,我收到以下错误:
“0x011c34a6处的指令引用了0x018333f4处的内存。无法读取内存。”
知道造成这个问题的原因是什么吗?
答案 0 :(得分:5)
这是一个访问冲突异常。当程序试图访问无效的内存地址时引发它。
最明显的原因是您正在访问已解除分配并返回到系统的内存。我建议您在调试器下执行,让调试器中断引发异常的代码。这将告诉您引用的对象,然后您必须弄清楚在对象被销毁后引用它的原因。
话虽如此,0x011c34a6的指令指针值看起来不像你的exe中的0x00400000。因此,可能在DLL中引发异常,这可能使故障调试变得更加棘手。
我建议您使用具有完整调试选项的FastMM内存管理器,而不是Delphi 7中的默认Borland MM.FastMM有许多调试工具可帮助定位和诊断此类故障。它可能有助于追踪这个故障,但如果没有,它肯定会帮助你找到未来的其他故障。
答案 1 :(得分:1)
维沙尔。我可以做几件事。 如果您试图释放或访问代码中已经释放的内容,则会发生这种情况。 如果您逐步执行在应用程序关闭期间执行的代码,您可能会发现错误。 你在使用线程吗?