delphi7中出现这种错误,求大神解释 5
1个回答
2017-01-18
展开全部
程序中访问了不能读的数据区域出现这样的错误。程序中不正确的内存分配与释放出现了问题导致的。
例如 SetLength(A, 10), B = A[14]就有可能。
例如TObject(A).Free; A.Value :=1。对象已经被注销后,读写对象的属性就有可能。
以上的错误发生在动态链接库中,可能是动态链接库中的变量内存已经释放后,再读写该内存。
还有一种比较隐蔽的可能是,接口没有释放,也常常会出现这样的错误。
例如
constructor TObj.Create;
begin
AI := AIObj.Create;
end;
destructor TObj.Destroy;
begin
AI := nil; //应该在对象注销前清空接口,如果没有也可能会出现以上情况。
inherited;
end;
例如 SetLength(A, 10), B = A[14]就有可能。
例如TObject(A).Free; A.Value :=1。对象已经被注销后,读写对象的属性就有可能。
以上的错误发生在动态链接库中,可能是动态链接库中的变量内存已经释放后,再读写该内存。
还有一种比较隐蔽的可能是,接口没有释放,也常常会出现这样的错误。
例如
constructor TObj.Create;
begin
AI := AIObj.Create;
end;
destructor TObj.Destroy;
begin
AI := nil; //应该在对象注销前清空接口,如果没有也可能会出现以上情况。
inherited;
end;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询