读书人

关于内存泄露,该怎么解决

发布时间: 2012-06-15 19:37:05 作者: rapoo

关于内存泄露
我编写了一个程序,需要长时间运行的,而且用到了多线程。程序运行时偶尔会出现内存泄露导致软件崩溃,经内存检测软件发现出问题的地方是在forms.hpp里面的如下位置
/* TCustomForm.Create */ inline __fastcall virtual TForm(Classes::TComponent* AOwner) : TCustomForm(AOwner) { }
#pragma option pop
请大侠们帮助分析一下可能的原因

[解决办法]
这个位置只是窗体的构造函数,你的线程中涉及到操作VCL了吗?
[解决办法]
内存检测软件发现出问题的地方,并不一定就是这里.
[解决办法]
可能是 form 关闭时,没有释放用到的内存,检查form打开时是否 建立指针,是否申请内存。
[解决办法]
线程中改窗体内容,这个用同步函数不大好,因为线程中随时可能改,而主进程也可能触发其他事件也改,有时会造成意想不到的逻辑错误。最好用发消息给窗体的方式改VCL控件内容,这样保障了事件触发的顺序,也就保障了程序逻辑能顺序执行。

读书人网 >C++ Builder

热点推荐