Q&A

  • MDI Child(dll)의 핸들 좀 죽여주세여...
MDI Child를 dll로 만들어 쓰고 있습니다. 책을 찾고, 인터넷을 뒤지고...끙끙거리며 어떻게든 만들었거든요. 그런 와중에 알게 된것이 MDI Main의 Handle을 MDI Child로 넘겨줘야 한다는 거였죠. MDI Main의 Application객체와 DLL의 Application객체가 동일한 넘이 아니라는 설명이 있더라구요. 흠...그렇겠군...하면서 적용을 해보니 참...잘 돌아가네요.



그런데 문제는요...

그 MDI Child를 닫을때, 그때부터 문제가 되는군요. 무슨 에러가 난다거나 하는건 아닌데요...방금 닫았던 그 MDI Child(--> dll로 된 그 넘이요)를 MDI Main이 열려있는 상태에서는 Build가 안되더라는 겁니다. 그러니까 MDI Child를 닫긴 닫았지만 여전히 뭔가가 남아있어서 그넘이 사라지기 전에는 Build를 할수 없는거죠. 프로그램이 아직 실행중이라는거 아니겠어요? MDI Main을 닫으면(전체 프로그램이 종료되면)? 역쉬나...Build가 됩니다.



한참을 생각해보니...추측컨대, 아마 MDI Main에서 넘겨줬던 Application.Handle이 문제가 되고 있는게 아닌가 싶거든요. MDI Child를 닫으면서 그넘을 어떻게든 처리를 해줘야 할 것 같은데요...



결론인즉, 제 추측이 맞는건지...그리고 만약 맞다면 MDI Child에서 어떤 처리를 해줘야 하는지...너무 너무 궁금합니다. 언제쯤 이 허접신세를 면하게 될지요...



고수님들, 한수 가르침을 간절히 기다립니다. 도와주세요...ㅜㅜ





1  COMMENTS
  • Profile
    헤멧던 사람 2001.12.16 10:44
    혹시 차일드 폼이 종료되는 시점에서 FreeLibrary를 해 주셨는지요???

    아마도 LoadLibrary의 핸들을 메모리에서 해제하지 않아서 발생한 문제같아 보입니다.





    권윤수 wrote:

    > MDI Child를 dll로 만들어 쓰고 있습니다. 책을 찾고, 인터넷을 뒤지고...끙끙거리며 어떻게든 만들었거든요. 그런 와중에 알게 된것이 MDI Main의 Handle을 MDI Child로 넘겨줘야 한다는 거였죠. MDI Main의 Application객체와 DLL의 Application객체가 동일한 넘이 아니라는 설명이 있더라구요. 흠...그렇겠군...하면서 적용을 해보니 참...잘 돌아가네요.

    >

    > 그런데 문제는요...

    > 그 MDI Child를 닫을때, 그때부터 문제가 되는군요. 무슨 에러가 난다거나 하는건 아닌데요...방금 닫았던 그 MDI Child(--> dll로 된 그 넘이요)를 MDI Main이 열려있는 상태에서는 Build가 안되더라는 겁니다. 그러니까 MDI Child를 닫긴 닫았지만 여전히 뭔가가 남아있어서 그넘이 사라지기 전에는 Build를 할수 없는거죠. 프로그램이 아직 실행중이라는거 아니겠어요? MDI Main을 닫으면(전체 프로그램이 종료되면)? 역쉬나...Build가 됩니다.

    >

    > 한참을 생각해보니...추측컨대, 아마 MDI Main에서 넘겨줬던 Application.Handle이 문제가 되고 있는게 아닌가 싶거든요. MDI Child를 닫으면서 그넘을 어떻게든 처리를 해줘야 할 것 같은데요...

    >

    > 결론인즉, 제 추측이 맞는건지...그리고 만약 맞다면 MDI Child에서 어떤 처리를 해줘야 하는지...너무 너무 궁금합니다. 언제쯤 이 허접신세를 면하게 될지요...

    >

    > 고수님들, 한수 가르침을 간절히 기다립니다. 도와주세요...ㅜㅜ

    >

    >