应用程序在退出时,提示应用程序错误 ( 积分: 0 )

  • 主题发起人 主题发起人 wlt3022
  • 开始时间 开始时间
W

wlt3022

Unregistered / Unconfirmed
GUEST, unregistred user!
程序编译,和登陆没提示任何错误。但在退出时
提示以下信息:
"0x00594324" 指令引用的"0x0145d184" 内存,该内存不能为“read”
要终止程序,请单击“确定”。
要调试程序,请单击“取消”。
不知道原因出在那里。请高手指点。谢谢了
 
总结一句话内存溢出 哈哈 是不是没释放的原因啊!~!~
 
这个问题经常出现!
 
是不是调用了DLL里边的东西?
 
没有调用,dll文件。有时是好的。好又出现上面的问题。
释放?该怎么释放?是释放窗体。还是定义的变量或常量。还是。。。。
 
说明有内存泄漏!你看看你程序结束时候做了什么?设置断点跟踪进去看,可以在Project-Options-Compiler里面设置Use debug dlls打勾,这样可以跟踪进VCL源码里面,如果汇编熟悉那么看View CPU窗口吧。
崩溃地址是:0x00594324,那么在.map文件中偏移应该是:193324,你打开你工程,打开Project-Options-Linker-Map file-选择Detailed确定。重新编译会产生一个.map文件,打开,其中搜索193324,然后找到一个类似 182 0100:193324 的东西,那么你程序出错在第182行。
193324这个数是这么算的,.map文件中偏移=崩溃地址-程序基地址$00400000-代码段偏移$100000。
 
我也觉得跟内存有关
 
不是有东西没释放,而是访问了已经释放的东西,单步执行释放过程,或者可以发现问题,
但不一定全部可以发现,特别是与系统消息相关的东西,未必能发现。
 
这种错误通常都是访问了释放的或者不允许访问的内存地址。
 
物理位置释放了,地址没有释放的关系
 
单步跟踪吧
 
刚好前段时间碰到过,是因为在form close 下面写close,或free引起的,去掉就可以了
查查看是不是这个原因
 
后退
顶部