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
[67055] Re:델파이서 만든dll 파일의 class를 C++빌더에서 사용하고자 합니다.
김도완 [purplecofe2] 1199 읽음    2012-04-30 18:32
신효철 님이 쓰신 글 :
: 안녕하세요.
: 초보개발자 입니다.
: dll파일 사용법을 공부하던 중 잘 되지 않아 이렇게 질문을 하게 되었습니다.
: dll파일은 델파이에서 만들고 사용은 c++빌더에서 하고 있습니다.
:
: dll소스
:
: library Project4;
: 
: exports  //밖에 내보내다
:   ____;   //클래스는 어떻게 불러와야 할가요??
: 

:
: type
:  TFtpSW = class(TObject)
:   private
:   public
:     ftpSW : TIdFTP;
:     constructor create; virtual;
:     function SWconnect(host:AnsiString; name:AnsiString; pw:AnsiString; path:AnsiString): Integer;
:     function SWfileget(path:AnsiString; filenum:Integer): AnsiString;
:     destructor SWDestroy;
:  end;
: 

: 로 만들었습니다.
:
: exports 시 class를 어찌 내보내야 할지 모르겠고
: class 를 어찌 불러와서 사용해야 할지 모르겠습니다.
:
: 기본적은 함수들을 dll로 만들어 불러올때는
:
: typedef int (*TSum)(int a, int b);
: 
: TSum sumtest;
: sumtest = (TSum)GetProcAddress(hDll,"Sum");
: ShowMessage(sumtest(1,2));
: 

: 위와 같은 형식으로 불러왔는데
: class 의 경우는 잘 모르겠습니다.
:
: dll 파일에서
:
: function swftp: TObject; stdcall;
: 
: implementation
: 
: function swftp;
: begin
:   Result := TFtpSW.Create;
: end;
: 

: 도 해보고
: 불러오는 프로젝트에서
:
: typedef void (*Tswftp);
: 
: HINSTANCE hDll = Null;
: hDll = LoadLibraryA("Project4.dll");
: if (hDll)
: {
:   Tswftp ftp;
:    ftp = (Tswftp)GetProcAddress(hDll, "swftp");
:    ftp();
: 

: 과 같이 했더니 함수를 부를수 없다고 에러가 납니다.
:
: 간단한 예제나 도움좀 부탁드립니다.
: 책도 없고 인터넷 찾아가며 배우려니 너무 힘드네요..

클래스는 서로 사용이 불가능해서 보편적인(?) Interface를 이용한 방법이 제일 좋을 것 같습니다.

간단한 예제를 델마당에 "DLL+" 라는 것으로 자료실에 예제를 올렸었던 것 같습니다.

참고하세요.

+ -

관련 글 리스트
67054 델파이서 만든dll 파일의 class를 C++빌더에서 사용하고자 합니다. 신효철 1024 2012/04/30
67055     Re:델파이서 만든dll 파일의 class를 C++빌더에서 사용하고자 합니다. 김도완 1199 2012/04/30
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.