CList:=TStringList.Create()
try
begin
CPackage(Package,CList);
end;
finally
begin
CList.Clear;
CList.Free;
end;
end;CPackage函数是调用的一个dll文件中函数,CList作为参数传入,
请问最后几行的清空释放CList有问题吗? 不释放没提示什么不对,但是加上清空释放会提示
一个指针错误 ,请明白的兄弟们指点一下 在线等待

解决方案 »

  1.   

    dll中的函数应该没有问题 调试中就是到clear那里出的错
    还有2楼的朋友,你说系统会自动释放,可是我看帮助里面stringlist
    procedure TForm1.Button1Click(Sender: TObject);
    var  TempList: TStrings; { declare the list }
    begin
      TempList := TStringList.Create; { construct the list object }
      try    { use the string list }
      finally    TempList.Free; { destroy the list object }
      end;
    end;
    帮助是这么写的啊 到底系统会自动释放吗 麻烦再确认一下 谢谢
      

  2.   

    D的代码与dll传递对象引用是一种危险的行为,在内存访问上要注意,帮助中有说明需要把某个管理内存的单元,加入到工程引用的单元的第一个以避免不出现内存访问问题,具体是哪个单元记不太清楚了,查一下帮助;