C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[2709] Re:[질문]MDI Application의 child window들을 DLL로 구성하려면..
박지훈.임프 [cbuilder] 3692 읽음    2000-01-14 00:00
김대영 님이 쓰신 글 :
: 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를 다시
념겨줘야 합니다.

잘 이해가 안되시거나 혹 다른 이유인 것 같으시면 자세한 소스를 첨부해서 다시 질문해주시기
바랍니다.

그럼 이만...

+ -

관련 글 리스트
2701 [질문]MDI Application의 child window들을 DLL로 구성하려면.. 김대영 3767 2000/01/13
2709     Re:[질문]MDI Application의 child window들을 DLL로 구성하려면.. 박지훈.임프 3692 2000/01/14
2714         Re:Re:[질문]MDI Application의 child window들을 DLL로 구성하려면.. 김대영 3771 2000/01/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.