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
[67227] Re:델파이에서 만든 폼이 있는 dll 재질문 드립니다.
장성호 [nasilso] 1448 읽음    2012-05-16 18:58
음..

만약 위와같이 하려면요
몇가지 제약 조건이 있습니다.

첫째. Delphi와 CBuilder버젼이 똑 같아야 합니다.

둘째. Delphi-Dll 에서 runtime-package를 써서 compile해야학
        CBuilder-Application에서도 runtime-package를 써서 compile해야합니다.


위 조건이 만족되지 않으면
그냥 VC로 만든 dll-Form을 CBuilder어플에 올리는 거나 마찬가지 입니다.

그경우엔
win32 api    SetParent로 올려야  됩니다.

그럼..

신지무의 님이 쓰신 글 :
: 안녕하세요.
: 초보개발자 입니다.
:
: 해결이 안나서 재질문 드리게 되었습니다.
:
: 델파이에서 dll파일을 작성하였습니다.
: 이 dll은 폼을 가지고 있습니다.
:
: c++에서 폼을 만들고 이 폼에는 panel과 버튼이 있습니다.
: 버튼을 클릭시 dll폼이 panel에 나타나게 하고자 합니다.
:
: 그냥 폼을 호출할땐 잘 되지만 parent / parentwindow를 넣으면
: Access violation 에러가 떨어집니다.
:
: dll소스 (델파이)
:
: procedure Ftpshow2(pParent:TComponent); stdcall;
: begin
:   frmFMS_S_1120 := TfrmFMS_S_1120.Create(nil);
:   frmFMS_S_1120.Parent := pParent;                      //에러발생부분
:   frmFMS_S_1120.ShowModal;
: end;
: 
: exports  //밖에 내보내다
:   Ftpshow2;
: 

:
:
: c++빌더 소스
:
: 	HINSTANCE hDll = Null;
: 	hDll = LoadLibraryA("nb21_ftp.dll");
: 	if (hDll)
: 	{
: 		typedef void (__stdcall *TFtpshow)(TComponent *);
: 		TFtpshow ftpshow;
: 		ftpshow = (TFtpshow)GetProcAddress(hDll, "Ftpshow2");
: 			ftpshow(this->Panel1);
: 		FreeLibrary(hDll);
: 	}
: 

:
: 입니다.
:
: 어느곳을 잘못하고 있는 것일까요?
: ======================================
:
: handle 을 넘겨줘야 하는 거였군요..
: 클래스를 넘기려고 하다 보니 에러가 발생하고 작동이 안되었습니다.

+ -

관련 글 리스트
67225 델파이에서 만든 폼이 있는 dll 재질문 드립니다. 신지무의 1055 2012/05/16
67227     Re:델파이에서 만든 폼이 있는 dll 재질문 드립니다. 장성호 1448 2012/05/16
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.