안녕하세요
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 ;