Q&A

  • 프로그램의 비정상적인 종료에 대하여
안녕하세요?
IDE상에서 프로그램을 실행후 종료를 하면 비정상적으로 종료가
되는것 같습니다.
메뉴에 Run이 있지 않습니까?
그 하위메뉴인 Run 이 비활성화로 되어있고 Program Reset 메뉴만
활성화 되어있어서 바로 실행해 볼려면 Program Reset를 누른후
Run으로 실행을 시켜야 하거든요.
어떻게 해서 이런문제가 나타나는지 모르겠군요.
이 프로그램은 DirectShow를 이용하여 Mp3를 연주하는 프로그램이거든요.
메모리문제인가하여 FormClose 이벤트에 Action := CaFree라는 문장도
넣어봤는데 마찬가지군요.
고수님들의 많은조언 부탁드립니다.
2  COMMENTS
  • Profile
    박상윤 2002.04.08 19:13

    DirectShow는 Com기반입니다. 종료하실때...
    모든 인터 페이스를 Realese 해주셔야 합니다..
    그러나 프로그램하다보면 이것을 놓치는 경우가 종종있습니다.
    그런경우 위와 같은 상황이 발생합니다. 결국 메모리 누수 현상이
    일어나게 되지여...
    이것을 배제 시키려면 VC 에서 사용하는 스마트 포인터 게념을
    사용하시면 됩니다 . com을 사용할수 있는 객체를 생성 ..모든 연산자를
    오버로드 하고 생성과 소멸자에서 자동으로 처리하도록 만드는 것입니다.
    쫌 어렵나여.. 아니면 수동으로 모든 것을 감시하고 처리 하셔야 합니다.
    특히   Render같은 인텔리젼스 connection을 사용하셨다면 추적하기는
    더욱힘듭니다...
    어떤 방법을 사용하셨는지 모르겠지만....
    스마트 포인터의 게념은 MSDN ,Devpia.com  에서 찾아보시면
    잘 나와 있습니다.
  • Profile
    최용일 2002.04.08 11:09
    안녕하세요. 최용일입니다.

    흠~~ 질문만으로는 무엇때문인지는 알수가 없군요... 한줄 한줄 디버깅해보시는 수밖에...

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