|
dll은 C 언어 인터페이스이기 때문에, dll을 호출하는 쪽에서 dll 내부의 클래스를 전혀 인식할 수 없습니다. MS가 스스로 dll은 C 인터페이스다, 라고 규정해놨기 때문에 불가능합니다.
dll에 폼을 넣었을 경우 폼을 호출할 수 있는 방식은 오직 폼을 생성하고 보여주는 함수를 dll에 넣고 그 함수를 엑스포트한 다음 메인 쪽에서 그 함수를 호출하는 것 뿐입니다. 이렇게 하면 메인쪽에서 dll 폼의 클래스를 알 필요가 없으니까요.
해결 방법은 dll이 아닌 bpl로 만드는 겁니다. bpl은 클래스 인터페이스이므로 원하시는 딱 그대로 가능합니다.
그럼...
dll초보 님이 쓰신 글 :
: 어려운건 아닌거같은데 씨빌더 책이나 자료가 워낙 없어서 질문드립니다.
:
: 어떤 역할을 하는 폼을 만드는데 이것을 DLL형태로 만들어서 다른 프로젝트
:
: 에서 불러서 사용하려고 합니다.
:
: 만약 이 폼이 TMyForm 이라고 하면 사용하는 프로그램에서
:
: #include "MyForm.h"
: ....
: void TMain::Execute()
: {
: TMyForm *form = new TMyForm(this);
: form->Show();
: ....
: }
:
: 이런식으로 사용할 예정입니다.
:
: DLL은 위저드로 생성하고 폼을 추가하면 될것같은데 어떻게 익스포트해서
:
: 사용하는지 방법 좀 갈켜주세여...
|