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
[36456] Re:Visual C용 DLL을 빌더에 동적 연결
정재만 [csta] 1496 읽음    2004-07-23 18:36
제가 보기에는 헤더파일을 보아하니 VC밖에 안되겠네요...
(클래스 자체를 임포트선언 했으므로 클래스로 받아야됩니다..)

꽁수로는 VC에서 또다른 래퍼DLL을 제작하여 빌더로 호출하시는것이 좋겠네요...


하느리 님이 쓰신 글 :
: 장비를 제어하기 위해 받은 DLL이 visual C로 제작이 된 DLL, Lib를 포함하고 있고, 빌더용은 따로 없는 상황입니다.
: 그래서 우선적으로 빌더용 lib를 만들기 위해, ImpLib.exe를 이용하여 lib를 만들고, 정적연결을 해 보았으나 실패하였습니다. 그래서 동적연결을 시도해 보려 하는데, 잘 안되네요.
:
: 받은 DLL의 헤더파일은
: class __declspec(dllimport) ABC_SDK {
: public:
:     long InitDriver(short * pnBoards, char * strDLL, char * strDriver);
:     ....
: };
: 이렇게 클래스로 제작되어 있습니다. (라이센스때문에 헤더파일을 직접 보여드리지 못하여 죄송합니다.)
:
: 이것을 동적연결을 할려면,
: 제가 알고 있기로는,
:     long (__stdcall *InitDriver) (short * pnBoards, char * strDLL, char * strDriver);  // 함수포인터 정의
:     HANDLE mh_DLLInstance = LoadLibrary ("ABC_SDK.dll"); // load dll
:     if ( mh_DLLInstance )
:     {
:         InitDriver= (long (__stdcall*)(short*, char*, char*)) GetProcAddress (mh_DLLInstance, "ABC_SDK::InitializeDriver"); // dll 내의 ABC_SDK::InitializeDriver함수의 주소번지 찾기
:         if ( InitDriver )
:         {
:             short board;
:             char s_dll [256];
:             char s_driver [256];
:             long r = InitDriver (&board, s_dll, s_driver); // dll 내의 함수 실행
:             ....
:         }
:     }
:
:     if ( mh_DLLInstance )   FreeLibrary (mh_DLLInstance);
:
: 이렇게 하면 되는 것으로 알고 있는데, InitDriver가 NULL이 됩니다. 즉 해당 함수를 찾지 못했다고 나오는 것이죠. "ABC_SDK::InitializeDriver" 이부분이 잘못된 것 같은데.....
:
: 정상적으로 dll 내의 함수를 호출할려면 어떻게 해야 하나요 ?
: 미리 감사를 드립니다. ^^

+ -

관련 글 리스트
36453 Visual C용 DLL을 빌더에 동적 연결 하느리 1025 2004/07/23
36456     Re:Visual C용 DLL을 빌더에 동적 연결 정재만 1496 2004/07/23
36481         Re:Re:Visual C용 DLL을 빌더에 동적 연결 김성연 1505 2004/07/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.