Q&A

  • AccessViolation 이라는게....
if ( E is EOutofMemory )          then
    sTemp := '메모리가 충분하지 않습니다.'
  else if ( E is EAccessViolation ) then
    sTemp := '메모리 오류입니다.'
  else if ( E is EStackOverflow )   then
    sTemp := '스레드 수행을 메모리에 할당할 수 없습니다.'
  else if ( E is EInOutError )      then
    sTemp := '파일 입출력 오류입니다.'
  else if ( E is EIntError )        then
    sTemp := '정수 연산 오류입니다.'
  else if ( E is EDivByZero )       then


현재 메인폼에 들어가있는 소스 일부인데요....
컴파일하고 실행파일을 실행하면 메모리 오류입니다 라는 메세지 창이 뜹니다.

위에 두번째 조건때문에 그런메세지가 나오는것은 알겠는데...

똑같은 소스로 어떤때는 메세지가 출력되고 어떤때는 정상적으로 작동합니다.
전혀 수정을 가하지 않은 상태에서 말이죠...

AccessViolation 이라는게 어떤상태를 말하는것일까요?

(참고로 제가 소스를 수정한건 edit 컴포넌트 프로퍼티에 flat 해준거뿐...
아무이상없었는데 몇일있다가 그소스 다시 열었더니 80~90퍼센트는
메모리오류라는 메세지를 출력하고 가끔은 멀쩡하게 열립니다.)

현재 제가 쓰고있는 컴퓨터가 하루에 10번이상은 블루스크린이 뜨는
윈도2000 프로페셔널 을 쓰는 컴퓨터입니다.

제 시스템상으로 불안한것으로 보기에는 뭔가 석연치 않고...답답하고 해서
글올립니다.

혹시 이런증상 경험해보신분이 계시면 조언부탁드립니다.

즐코하세요^^
1  COMMENTS
  • Profile
    최용일 2004.11.06 04:35
    안녕하세요. 최용일입니다.

    Access Violation 에러는 허가되지 않은 메모리 영역을 참조할 때 발생하는 에러입니다. 예를 들어 객체를 생성하지 않고 그 객체를 억세스 할때...

    "edit 컴포넌트 프로퍼티에 flat 해준거뿐..."이라는게 무슨 뜻인지는 잘 모르겠지만... 아마도 써드파티 컴포넌트를 쓰신거 같은데 그쪽 문제일 가능성이 클거 같군요...

    ^^ 항상 즐코하세요...