작업을 하다 전혀 알수 없는 에러가 발생해서 이렇게 질문을 합니다.
소스는 아래와 같습니다.
function fncRW(Source, Target: String): Boolean;
var
iStream, oStream: TFileStream;
begin
Result := False;
iStream := TFileStream.Create(Source, fmOpenRead);
oStream := TFileStream.Create(Target, fmCreate);
try
이후의 내용은 iStream의 내용을 읽어서 oStream에 적절히 변환하여
저장하는 내용입니다.
except
on E: Exception do
begin
Result := False;
exit;
end;
end;
iStream.Free;
oStream.Free;
end;
근데... 항상 이 function의 맨 마지막부분에서 Access Violation 에러가 납니다.
위의 코드대로 해서 Trace를 하면 oStream.Free 절에서 나구요...
만약 end;절 바로 이전에 또 뭔가를 추가했다면 바로 그 절에서 Access Violation
에러가 나타납니다.
혹시 왜 그런지 알수 없을까요?
이거 3일동안 이 문제 때문에 더 이상 작업진행을 못 하고 있습니다.
여태 이런 유형의 오류는 한번도 겪질 못했는데...
누구 아시는 분은 좀 가르쳐주셨으면 감사하겠습니다.
[A[A[A[A[A[A[A[A[A[A[A[A[A[A[A[A[A[A[A[A[A[A[C[C[C[C[C[C[C[C[C[C[C[C[C[B[B[B
[A[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C[C
[B[B[B[B[B[B[B[B[B[B[B[B[B[B[B[B[B[B 참! 이 변환작업이 뭐냐면 파일내용이 컴포넌트들을 저장한것이거든요...
컴포넌트의 속성이 빠지고 추가되고.. 그래서 예전의 컴포넌트들을 읽어와서
새로운 컴포넌트로 적절히 변환하는 것입니다.
감사합니다.
|