我的程序在运行时,经常出现下面的错误。例如,多个子窗体,随机打开随机关闭,每一个都有出错的可能。特别是释放Tstringlist对象时,都会出现这样的错误。
具体的错误信息是:
Project XXX.exe raised exception class EAccessViolation with message‘access violation at address...00403D10 in module‘XXX.exe'.Read of address 01017FFC’
请问,都有哪些原因会导致这类错误的出现?该如何解决?
等待高手赐教!多谢!!!
具体的错误信息是:
Project XXX.exe raised exception class EAccessViolation with message‘access violation at address...00403D10 in module‘XXX.exe'.Read of address 01017FFC’
请问,都有哪些原因会导致这类错误的出现?该如何解决?
等待高手赐教!多谢!!!
2、指针指向的地址不存在也会
var
list: Tstringlist;
i: integer;
tmpstr1,tmpstr2: string;
begin
list := TStringlist.Create;
list.Clear;
tmpstr1 := string(cbschid.Text);
tmpstr2 := string(cbdepid.Text);
getlist(list,'pro_get_class',tmpstr1,tmpstr2,'');//根据学校代号和院系代号取得班级
代号,存入list中
cbclassid.Enabled := true;
cbclassid.Color := clWindow;
cbclassid.Clear;
for i := 0 to list.count -1 do
cbclassid.Items.Add(list.Strings[i]);
list.Free; //该句注释掉后就不会报错了,但list是动态创建的,用完不应该释放吗?
list:=nil;
end;
list:=nil;//这句干吗用的?都free掉了还为nil,你把这句注释掉试试
getlist是我在动态链接库中写的过程,会不会是调用dll有问题?
先:remove file from project
再:add file from project
就不会有问题了,不过下次还有可能出现
再这样又可以解决