|
김대영 님이 쓰신 글 :
: main.exe는 MDI의 parent를 가지고 있는 실행 가능한 프로그램이고
: menu1.dll은 MDI child window를 가지고 있는 dll입니다.
: 또한 이 dll에느 child window를 생성시키는 export function을 정의해두었습니다.
: 생성 방법은 다음과 같이 했구요
:
: ----------------------------------------------------------------------------
: // 선언부
: extern "C" __declspec(dllexport) int CreateChildForm(TApplication*, HANDLE);
:
: ....
:
: // 몸체
: int CreateChildForm(TApplication *ParentApp, HANDLE ParentHandle)
: {
: Form1 = new TForm1(ParentApp, ParentHandle);
: }
: ----------------------------------------------------------------------------
:
: 이와 같이 한 뒤 main.exe에서 이 함수를 호출하면 MDI parent를 찾을 수 없다는
: 에러가 발생합니다.
: 근본적으로 잘못되었다면 지적해주시고
: 올바른 방법을 알려주시면 고맙겠습니다.
:
: 감사합니다.
임펠리테리입니다.
DLL 내에 있는 MDI 차일드폼은 Parent가 될 메인폼을 찾을 수가 없으므로 그런 에러가 발생합니다.
코딩을 하신 걸로 봐서는.. 글쎄요. 어디선가 소스를 보시긴 한 것 같은데, 일부만 보셨나봅니다.
차일드폼의 생성자에 인자를 두개 넘겨준 걸로 봐서는 디폴트로 만든 생성자를 변경했든지 혹은
오버로드해서 새 생성자를 추가하셨나보군요. 차일드폼의 생성자를 보여주시지 않으셔서 확신할
수는 없지만, 만약 생성자의 코드에서 베이스생성자에 Owner로서 넘겨받았던 ParentApp를 다시
념겨줘야 합니다.
잘 이해가 안되시거나 혹 다른 이유인 것 같으시면 자세한 소스를 첨부해서 다시 질문해주시기
바랍니다.
그럼 이만...
|