Q&A

  • 에러메세지에대한궁금증
실행중에 EAccess Violation 이라는 메세지가 나오는데

원인 및 해결방법이 있으시면

여러 선배님들의 조언바랍니다.

1  COMMENTS
  • Profile
    김영대 2000.01.13 19:14
    초보왕 wrote:

    > 실행중에 EAccess Violation 이라는 메세지가 나오는데

    > 원인 및 해결방법이 있으시면

    > 여러 선배님들의 조언바랍니다.



    "Access Violation at address 003CC3EC in module '프로그램명.exe'...."

    등의 공유위반 에러가 발생할때 이런 메시지만 보고는 어느 누구도 에러의 원인을

    알 수 는 없습니다. Access Violation이 발생할 수 있는 경우는 대부분이

    초기화되지 않는 자원 또는 객체의 참조인데 이유없는 에러는 없겠지요

    이때 사람에게는 전혀 도움이 안되는 그 번지를 가지고 에러가 발생한 실제

    소스의 라인을 조사할 수 있습니다.

    지금까지 나온 방법은 다음 두가지 입니다



    1.IDE 상에서 찾기

    에러 발생시 Delphi 의 통합개발환경(IDE)상의 메뉴 Search -> Find Error...

    에서 에러가 발생한 어드레스를 입력하면 만약 에러가 발생한 소스상의 위치를

    찾아서 그 위치에 커서(캐럿)을 이동시킵니다



    2.커멘드 라인으로부터 찾기

    커멘드 라인 컴파일러(dcc32.exe)에 -F 옵션을 사용하여 알 수 있습니다

    -F 옵션은 Find error 를 의미합니다



    Delphi가 설치된 디렉토리bin 디렉토리에 보시면 dcc32.exe 가 있습니다

    (사용예)

    dcc32 -f3CC3EC project1.dpr

    dcc32 를 이용할때는 소스가 있는 디렉토리에서 실행해야 합니다

    그러므로 DOS의 PATH 에 Delphi의 Bin 디렉토리가 포함되어 있는지 확인하세요

    그리고 dcc32.cfg 파일속에 Delphi의 Lib 디렉토리가 포함되어 있는지도 확인해야 합니다

    -u 옵션부분을 보시면 됩니다