为什么我的程序关闭的时候才出错???(100分)

  • 主题发起人 主题发起人 honestman
  • 开始时间 开始时间
H

honestman

Unregistered / Unconfirmed
GUEST, unregistred user!
我开发的一个程序,不知道从什么时候开始,运行程序退出时非法操作,说什么
是Stack dump:,然后显示:
Application Error:
Exception EAccessViolation in module A.EXE at 000C9BB2.
Access violation at address 004C9BB2 in module 'A.EXE'. Read of
address 01188D8C.
我跟踪过,主Form的Onclose是没有问题的。只是:
program a;
uses
Forms,
mainUnit in 'mainUnit.pas' {mainForm};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TmainForm, mainForm);
Application.Run;
end. <——出问题的地方。
为什么会这样?我在程序中没有包含任何的汇编代码。
 
全局变量处理是否有重名
 
不一定是和FORM的ONCLOSE有关的。看看你的程序中,有哪个东东的实例没有释放(比如一个
类)。现在头脑有些乱,想不起一些以前自己遇过的实况,等想起再给个例程你吧:)
 
但是,即使没有释放空间,也不会是堆栈溢出吧?
 
程序中有指针操作吗?还有一些数组方面的,也会压入堆栈的:)
 
你是不是创建了东西没释放,或者使用了但没创建,或者重复创建了

动态的创建控件,或者类,一不小心就会出这个问题
........Access violation at address 004C9BB2 in module......
 
或者是释放了两次
 
应该是释放的问题,仔细看看。
或着传上来大家看看。
 
但是如果是释放的问题,我的try应该可以捕捉到错误的啊?
为什么我的Onclose事件可以正常结束呢?
更加讽刺的是,日志文件中居然写着“程序正常退出”啊!
 
你叫我们猜是没有用的,还是看看你的程序再说吧.
 
现在发现那程序在其他机器上跑非常正常啊!
应该是我的操作系统问题吧???
 
ft...得,,这不是废话!
 
可能是在Ondestroy释放时候出错的
 
我才学编程,大家可以耐心一点指导我吗?
 
多人接受答案了。
 
后退
顶部