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
[54440] Re:VC 용 dll 을 빌더용으로 변환을 할려고 하는데요...
미수타윤 [mryyd] 1742 읽음    2008-08-28 11:46
VC시러 님이 쓰신 글 :
: VC 용 dll 을 빌더용으로 변환 하려고 하는데요...
:
: 게시판에 dll 변환 관련 글들에 나와있는 모든 방법을 다 써봤는데
:
: 계속  Linker Error 가 발생합니다.
:
: 이 dll 자체가 빌더에서는 사용이 불가능 한건지..
:
: 도저히 알수가 없어서요..
:
: 고수님들 도움 좀 부탁드립니다.
:
: 이게 그 dll 과 헤더 파일입니다.

tdump -ee hsclientapi.dll hsclientapi.lst 에 대한 결과는 아래와 같습니다.
--------------------------------------------------------------
Turbo Dump  Version 5.0.16.12 Copyright (c) 1988, 2000 Inprise Corporation
                  Display of File HSCLIENTAPI.DLL

EXPORT ord:0001='HSAddCam'
EXPORT ord:0002='HSAlarmUse'
EXPORT ord:0003='HSClassClose'
EXPORT ord:0004='HSClassOpen'
EXPORT ord:0006='HSConnect'
EXPORT ord:0005='HSConnect1'
EXPORT ord:0007='HSDisConnect'
EXPORT ord:0008='HSGetAlarmInfo'
EXPORT ord:0009='HSGetMaxCamera'
EXPORT ord:0010='HSGetRecvImage'
EXPORT ord:0011='HSGetRelay'
EXPORT ord:0012='HSGetRelayValue'
EXPORT ord:0013='HSGetSignalLoss'
EXPORT ord:0014='HSPTZSetting'
EXPORT ord:0015='HSRelay'
EXPORT ord:0016='HSSchClose'
EXPORT ord:0017='HSSchConnect'
EXPORT ord:0018='HSSchDayEventList'
EXPORT ord:0019='HSSchDisConnect'
EXPORT ord:0020='HSSchGetDayEventList'
EXPORT ord:0021='HSSchGetImage'
EXPORT ord:0022='HSSchGoto'
EXPORT ord:0023='HSSchInitialize'
EXPORT ord:0024='HSSchPause'
EXPORT ord:0025='HSSchPlay'
EXPORT ord:0026='HSSchReverse'
EXPORT ord:0027='HSSchSetEventFunc'
EXPORT ord:0028='HSSchSetHwnd'
EXPORT ord:0029='HSSchSetPlaySpeed'
EXPORT ord:0030='HSSchStop'
EXPORT ord:0031='HSSearch'
EXPORT ord:0032='HSSearchEnd'
EXPORT ord:0033='HSSetConfig'
EXPORT ord:0034='HSSetDisConnect'
EXPORT ord:0035='HSSetRelay'
EXPORT ord:0036='HSSetSignal'
EXPORT ord:0037='HSSoundUse'
--------------------------------------------------------------

문제없이 잘 붙여 사용하실 수 있습니다.
정적으로 붙여쓰실거면 impdef로 dll에서 def파일을 불러오신후에 에디팅하시고
implib로 dll를 생성하십시오. 그후 lib를 프로젝트에 붙여사용하시면 잘 됩니다... ^^

1. impdef *.def *.dll (이러면 .def파일이 생성되겠죠)
2. edit *.def 로 파일을 오픈하여 수정을 하셔야합니다. 그 내용은 아래와 같이...
--------------------------------------------------------------
// 수정전
LIBRARY     HSCLIENTAPI.DLL

EXPORTS
    HSAddCam                       @1   ; HSAddCam
    HSAlarmUse                     @2   ; HSAlarmUse
    HSClassClose                   @3   ; HSClassClose
    HSClassOpen                    @4   ; HSClassOpen
    HSConnect                      @6   ; HSConnect
    HSConnect1                     @5   ; HSConnect1
    HSDisConnect                   @7   ; HSDisConnect
    HSGetAlarmInfo                 @8   ; HSGetAlarmInfo
    HSGetMaxCamera                 @9   ; HSGetMaxCamera
    HSGetRecvImage                 @10  ; HSGetRecvImage
    HSGetRelay                     @11  ; HSGetRelay
    HSGetRelayValue                @12  ; HSGetRelayValue
    HSGetSignalLoss                @13  ; HSGetSignalLoss
    HSPTZSetting                   @14  ; HSPTZSetting
    HSRelay                        @15  ; HSRelay
    HSSchClose                     @16  ; HSSchClose
    HSSchConnect                   @17  ; HSSchConnect
    HSSchDayEventList              @18  ; HSSchDayEventList
    HSSchDisConnect                @19  ; HSSchDisConnect
    HSSchGetDayEventList           @20  ; HSSchGetDayEventList
    HSSchGetImage                  @21  ; HSSchGetImage
    HSSchGoto                      @22  ; HSSchGoto
    HSSchInitialize                @23  ; HSSchInitialize
    HSSchPause                     @24  ; HSSchPause
    HSSchPlay                      @25  ; HSSchPlay
    HSSchReverse                   @26  ; HSSchReverse
    HSSchSetEventFunc              @27  ; HSSchSetEventFunc
    HSSchSetHwnd                   @28  ; HSSchSetHwnd
    HSSchSetPlaySpeed              @29  ; HSSchSetPlaySpeed
    HSSchStop                      @30  ; HSSchStop
    HSSearch                       @31  ; HSSearch
    HSSearchEnd                    @32  ; HSSearchEnd
    HSSetConfig                    @33  ; HSSetConfig
    HSSetDisConnect                @34  ; HSSetDisConnect
    HSSetRelay                     @35  ; HSSetRelay
    HSSetSignal                    @36  ; HSSetSignal
    HSSoundUse                     @37  ; HSSoundUse
--------------------------------------------------------------
위의 내용을 네이밍때문에 일일이 바꿔주셔야 합니다. 아래와 같이...
--------------------------------------------------------------
// 수정후
LIBRARY     HSCLIENTAPI.DLL

EXPORTS
    _HSAddCam                       = HSAddCam
    _HSAlarmUse                     = HSAlarmUse
    _HSClassClose                   = HSClassClose
    _HSClassOpen                    = HSClassOpen
    _HSConnect                      = HSConnect
    _HSConnect1                     = HSConnect1
    _HSDisConnect                   = HSDisConnect
    _HSGetAlarmInfo                 = HSGetAlarmInfo
    _HSGetMaxCamera                 = HSGetMaxCamera
    _HSGetRecvImage                 = HSGetRecvImage
    _HSGetRelay                     = HSGetRelay
    _HSGetRelayValue                = HSGetRelayValue
    _HSGetSignalLoss                = HSGetSignalLoss
    _HSPTZSetting                   = HSPTZSetting
    _HSRelay                        = HSRelay
    _HSSchClose                     = HSSchClose
    _HSSchConnect                   = HSSchConnect
    _HSSchDayEventList              = HSSchDayEventList
    _HSSchDisConnect                = HSSchDisConnect
    _HSSchGetDayEventList           = HSSchGetDayEventList
    _HSSchGetImage                  = HSSchGetImage
    _HSSchGoto                      = HSSchGoto
    _HSSchInitialize                = HSSchInitialize
    _HSSchPause                     = HSSchPause
    _HSSchPlay                      = HSSchPlay
    _HSSchReverse                   = HSSchReverse
    _HSSchSetEventFunc              = HSSchSetEventFunc
    _HSSchSetHwnd                   = HSSchSetHwnd
    _HSSchSetPlaySpeed              = HSSchSetPlaySpeed
    _HSSchStop                      = HSSchStop
    _HSSearch                       = HSSearch
    _HSSearchEnd                    = HSSearchEnd
    _HSSetConfig                    = HSSetConfig
    _HSSetDisConnect                = HSSetDisConnect
    _HSSetRelay                     = HSSetRelay
    _HSSetSignal                    = HSSetSignal
    _HSSoundUse                     = HSSoundUse
--------------------------------------------------------------
3. 그후에 implib *.lib *.def (이때 꼭 수정된 def파일로 lib를 생성함...나중에 플젝에 붙여서 사용해야 하기 때문에)
4. 그럼 lib가 만들어 집니다.
5. 해당 app가 있는 폴더에 dll/lib/h를 카피합니다.
6. 해당 app(플젝)에서 lib를 추가합니다.
7. 이젠 app내에서 사용하시면 됩니다. ^^;

변경하는 과정이 꽤 복잡하죠...
도움이 되셨으면 좋겠네요...

PS: 동적으로 사용하실땐 LoadLibrary로 부르시면 되는데 문제는 네이밍때문에 일일이 함수이름을 확인하셔야 하는 작업을 수반하셔야 합니다. (.. )('' )( '')( ..) 일일이 기억을 하고 있지 못해서 더 이상은...흐흐흐...용서를~

+ -

관련 글 리스트
54439 VC 용 dll 을 빌더용으로 변환을 할려고 하는데요... VC시러 1194 2008/08/28
54441     Re:VC 용 dll 을 빌더용으로 변환을 할려고 하는데요... 크레브 1660 2008/08/28
54445         Re:Re: 감사합니다~^^ VC시러 1546 2008/08/28
54440     Re:VC 용 dll 을 빌더용으로 변환을 할려고 하는데요... 미수타윤 1742 2008/08/28
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.