Q&A

  • DLL 에서의 object 생성과 해제문제..
안녕하세요

post 객체를 생성하여 이런저런 사용을 하고서 생성된 객체를 해제하는 루틴입니다.

exe 파일로 포함해서 하면 아무 문제없는데 dll 로 컴파일해서 하면 꼭 오동작을 합니다.
증상은 어떤때는 고질적인 억세스바이얼레이션... 이나 황당한것은 프로그램이 그냥 종료되는것입니다.

원인은 post 를 생성하고 사용한것까지 잘되는데 꼭 생성된 post 를 해제(free) 하면 에러가 납니다.
해제하는 라인을 주석처리하면 거짓말같이 잘돌아가는거 아닙니까.. 헉헉..

아래 소스에서 잘못된 부분이 있는지 지적해주시고요 도움 부탁드리겠습니다.


type
  Tpost = class(Tobject)
    post_no : string ;
    city1   : string ;
..
..
..
..
  end ;


Procedure post_rtn() ;
var
   post : Tpost ;
   post_list : Tlist ;
begin
  post_list := Tlist.create ;
..
  post := Tpost.create ;
  post_list.add(post);
..
  post := Tpost.create ;
  post_list.add(post);
..
  post := Tpost.create ;
  post_list.add(post);
..
..
  // 파일헨들과 post 각각의 클래스 생성된것 헤제.. 이부분을 주석처리하면 잘됩니다.
  for i := 0 to post_list.Count -1 do TPost(post_list.Items[i]).free ;
..
..
end ;
0  COMMENTS