使用DevExpress的组件开发程序,是一个用图形方式进行设备控制的系统,用到了ExpressBar、QuantumTreeList、VerticalGrid和FlowChart。使用FlowChart显示图形,界面上含有的图形对象很多。开发的计算机内存有1G,在开发这台计算机上调试运行,一切正常。但是放到其它的计算机上,FlowChart清除图形对象时有时候产生Access violation at address ...异常,有时候又不产生。要是说我的应用程序有问题吧,我完全可以调试并找出代码问题所在,但是跟踪代码并没有发现程序问题,产生异常时查看调用堆栈为:kernel32.dll
rtl60.bpl
ntdll.dll
ntdll.dll程序代码无法捕获该异常,然后应用程序abnormal program terminated.另外,我尝试将DevExpress的组件(BPL库)静态链接到应用程序,MainForm一构造就产生类似的异常,因为是头一回用DevExpress的组件,不太清楚底细,是不是DevExpress的组件不可以静态链接?顺便说明:我使用的是C++ Builder 6.0开发环境。各位大哥有没有遇到类似的问题?如何解决?小弟拜谢!
rtl60.bpl
ntdll.dll
ntdll.dll程序代码无法捕获该异常,然后应用程序abnormal program terminated.另外,我尝试将DevExpress的组件(BPL库)静态链接到应用程序,MainForm一构造就产生类似的异常,因为是头一回用DevExpress的组件,不太清楚底细,是不是DevExpress的组件不可以静态链接?顺便说明:我使用的是C++ Builder 6.0开发环境。各位大哥有没有遇到类似的问题?如何解决?小弟拜谢!
解决方案 »
- Delphi ADOQuery或DBGriDEh组件的用法
- 使用WebBroser打开一个EXCEL文件时如何不让提示下载的对话框弹出来?
- 如何把后台oracle9改成sybase12?
- 紧急求助,我的DELPHI程序运行不起来...
- 问: 怎么得到TAction使用者的对象啊?
- 查询问题
- 最简单问题,ACCESS能保存图片吗,如果能,表格里数据类型如何设置谢谢
- 新手的疑惑!请高手进来回答!
- delphi能不能用于自动化方面软件的开发呢
- 我想取得DBGrid中被选中的某行某列的单元的值该怎么办?
- 请教如何将tbitmap中的bmp图片赋值给timage呢?我用image.picture.graphic.assigned(bmp)不能成功,还有其它办法吗?
- 请问如何强行释放所有已关闭的程序所残留的内存等资源?类似于微软的那个叫mem.exe的工具,如何入手呢?
var
I: Integer;
begin
Owner.Delete(Self);
DeleteRgn;
if FPaintRgn <> 0 then DeleteObject(FPaintRgn);
while ConnectionCount > 0 do
Connections[0].Free;
FConnections.Free;
FLinkedObjects.Free;
FObjects.Free;
^^^^^^^^^^^^^ 这一行!
FShapeBrush.Free;
FBkBrush.Free;
with Owner do
for I := 0 to ObjectCount - 1 do
Objects[I].FObjects.Remove(Self); <-- TNND自己的FObjects都Free了还Remove。 Owner.FObjects.Remove(Self);
Owner.SetChartSizes;
inherited Destroy;
end;把 FObjects.Free; 移到循环之后就行了。
with Owner do
for I := 0 to ObjectCount - 1 do
Objects[I].FObjects.Remove(Self); <-- 自己不在Objects里
<<--------上面只不过是从所有Objects[I].FObjects删除对自己的引用