为什么程序关闭的时候报 access violation add address 错误?

SauMa 2007-01-04 11:00:30
每次程序关闭的时候就会报这个错,这是怎么回事呢
...全文
182 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
我不懂电脑 2007-01-04
  • 打赏
  • 举报
回复
有内存被释放后,又访问了。
___NULL 2007-01-04
  • 打赏
  • 举报
回复
这个问题不好说,估计什么东西还没关闭,就被你 Terminate 了,但设断点运行却给了足够的时间来完成那个任务
SauMa 2007-01-04
  • 打赏
  • 举报
回复
这得给什么地方的代码啊?我关闭程序就直接调用Application->Terminate(),然后就报错,但是我再这里下断点跟进去又么有错,可以正常退出
daydayup234 2007-01-04
  • 打赏
  • 举报
回复
给点代码才知道
SauMa 2007-01-04
  • 打赏
  • 举报
回复
谢谢如风,我把程序改了一下,可以了

现在我想在子窗口关闭的时候发消息给主窗体,把子窗体指针delete然后再赋NULL

下面是添加的消息映射
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_FORM_CLOSE,TMessage,CMMessage)
END_MESSAGE_MAP(TForm1)

自定义消息,程序一起来运行到这里END_MESSAGE_MAP(TForm1)这里就报了stack overflow,这是为什么呢
donwmufromdying 2007-01-04
  • 打赏
  • 举报
回复
个人认为你在关闭子窗口和主窗口时的问题。一般的一个form1调用另外一个form2(动态创建的)这个流程:Form2=new TForm2(this);
Form2->ShowModal();
Form2->Close();
Form2=Null;
donwmufromdying 2007-01-04
  • 打赏
  • 举报
回复
你最好把你程序中动态分配的内存显式释放掉,比如:free,dealloc...,Close等等,特别是一些对象的实例释放,比如:form
SauMa 2007-01-04
  • 打赏
  • 举报
回复
我打开了一个子窗口,在子窗口运行部分代码后,关闭子窗口,在关主窗口就出错,但是关子窗口的时候没出错
jiangshx 2007-01-04
  • 打赏
  • 举报
回复
看看运行程序时都执行了哪些操作,导致了这个错误。
比如:如果运行程序以后,直接退出就出错,那就可能是在程序启动一些事件中,某段代码有问题,可能指针越界之类的。试着屏蔽该段代码或其中部分代码,看看还出错不,以此判断代码错误的位置。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧