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
[60249] Re:Re:Re:DLL 에 정의한 클래스 사용 방법...
df [] 1744 읽음    2010-02-13 15:35
이용태 님이 쓰신 글 :
: 정적으로 한개만 쓰겠다(DLL에 클래스 객체 한개 추가) 그러면 그럭저럭 어케어케 해서 돌릴 수 있을것 같은데..
:
: 동적으로 객체를 생성해서 여러군데서 써볼려고 했더니 답이 안나오더라구요.
:
: 그래서 불러다 쓸 폼이나 프레임에서 클래스 객체 선언해서 쓰면 간단히 해결될 줄 알았는데
:
: DLL에 클래스 정의가 들어 있으니..
:
: 객체 만들어서 쓰면 될거 같은데.. 그렇지가 않네요...;;;
:
: 이거 혹 정적으로 DLL을 추가해서 그런가요? 동적으로 쓸려면 LoadLibrary()인가 이걸로 필요할때마다 폼이나 프레임에서 불러다가 써야 할가요?
:
:
: 참고로 BPL 만드는 법은 어케 하는지 모르겠습니다..;;; 만드는 방법도 좀 알려주시면 감사하겠습니다..(__)
:
:
: 장성호 님이 쓰신 글 :
: : C++Builder 나 Delphi에서는  DLL보다 BPL(vcl용 확장 dll) 로 만드는 것이 훨씬 활용도가 높습니다.
: :
: : 음...
: :
: : dll로 만들고  header를  exe쪽 cpp에 include시키구..
: : dll의 lib를 만들어서 exe프로젝트에 포함시키구..
: : 그렇게 쓰면 되지 않을가요?
: :
: : 문론 bpl로 마찬가지구요
: : 단지 bpl은 lib같은것 프로젝트에 만들어 포함시킬 필요가 없을뿐이구요
: :
: : 그럼..
: :
: :
: :
: :
: : 이용태 님이 쓰신 글 :
: : : 다음과 같은 클래스를 DLL로 만들었습니다.
: : :
: : : typedef class TESTCLASS
: : : {
: : :     private :
: : :         int a;
: : :         int b;
: : :
: : :     public :
: : :         TMyClass();
: : :         int getA();
: : :         int getB();
: : :         void setA(int s_A);
: : :         void setB(int s_B);
: : : }TMyClass;
: : :
: : : TMyClass::TMyClass()
: : : {
: : :       a = 10;
: : :       b = 20;
: : : }
: : :
: : : int TMyClass::getA()
: : : {
: : :     return a;
: : : }
: : :
: : : int TMyClass::getB()
: : : {
: : :     return b;
: : : }
: : :
: : : void TMyClass::setA(int s_A)
: : : {
: : :     a = s_A;
: : : }
: : :
: : : void TMyClass::setB(int s_B)
: : : {
: : :     b = s_B;
: : : }
: : :
: : : 이렇게 만들어진 DLL를 빌더6.0 APP프로젝트 하나 만들어서 추가해서 사용할려고 하는데요..
: : :
: : : lib, dll파일 복사하고, lib 파일은 addto project해서 추가했습니다.
: : :
: : : 그런 다음에 폼에서 불러서 써볼려고 하는데요..
: : :
: : : 컴파일 하면.. 다음과 같은 에러가 뜹니다..;;
: : : [C++ Error] Unit1.cpp(13): E2141 Declaration syntax error
: : : [C++ Error] Unit1.cpp(18): E2451 Undefined symbol 'myClass'
: : : [C++ Error] Unit1.cpp(18): E2303 Type name expected
: : : [C++ Error] Unit1.cpp(18): E2379 Statement missing ;
: : : [C++ Error] Unit1.cpp(25): E2451 Undefined symbol 'myClass'
: : : [C++ Error] Unit1.cpp(25): E2121 Function call missing )
: : :
: : :
: : : #include <vcl.h>
: : : #pragma hdrstop
: : :
: : : #include "Unit1.h"
: : : //---------------------------------------------------------------------------
: : : #pragma package(smart_init)
: : : #pragma resource "*.dfm"
: : : TForm1 *Form1;
: : :
: : : TMyClass *myClass;
: : : //---------------------------------------------------------------------------
: : : __fastcall TForm1::TForm1(TComponent* Owner)
: : :     : TForm(Owner)
: : : {
: : :     myClass = new TMyClass;
: : : }
: : : //---------------------------------------------------------------------------
: : :
: : :
: : : void __fastcall TForm1::Button1Click(TObject *Sender)
: : : {
: : :     ShowMessage(IntToStr(myClass->getB());
: : : }
: : : //---------------------------------------------------------------------------
: : :
: : : DLL에 정의된 클래스를 폼에서 그냥 선언해서 쓸 수는 없는거 같은데요..
: : :
: : : 어떻게 해야 할지 모르겠습니다..;;;
: : :
: : : 답변 부탁드려요..^^


BPL은 new->other->pakege 선택하면되자나욘
스테틱라이브러리 만드는거랑 똑같을걸요;
폼을 포함가능한게 bpl인걸루아는뎅;
클래스는 dll에 쓰는게 안되던데요;
동적라이브러리나 패키지쓰세욘

+ -

관련 글 리스트
60238 DLL 에 정의한 클래스 사용 방법... 이용태 1221 2010/02/12
60250     Re:DLL 에 정의한 클래스 사용 방법... df 1609 2010/02/13
60240     Re:DLL 에 정의한 클래스 사용 방법... 장성호 1348 2010/02/12
60241         Re:Re:DLL 에 정의한 클래스 사용 방법... 이용태 1907 2010/02/12
60249             Re:Re:Re:DLL 에 정의한 클래스 사용 방법... df 1744 2010/02/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.