CPort 설치 방법

Test 환경: Windows2000, C++ Builder 6.0

1.먼저 CPort 3.0 (cport-3.0.zip)을 다운로드 받는다.
   http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=component&no=366


2. 압축을 풀면 다음과 같은 파일이 생긴다.
    source.zip
    examples.zip
    help.zip
    locale.zip
  
3. 위의 4개 압축 파일을 차례대로 압축을 푼다.
   (ex)D:\DLTS_C\Component\CPort 3.0 이 디렉토리 하부에 풀었음.

4. C++ Builder를 기동하고 Source의 디렉토리의 bpk 파일을 연다
   본 PC에서는
  
   D:\DLTS_C\Component\CPort 3.0\sources\source\DsgnCPortCB6.bpk
   D:\DLTS_C\Component\CPort 3.0\sources\source\CPortLibCB6.bpk
  
   * 여러 개의 bpk 파일 나오는데.. 6.0에 해당하는 것은 이놈들인 것 같고..
   문제없다면 DsgnCPortCB6.bpk로 문제없는데.. 간혹 인스톨시 뭐라고 에러 나오는데..
   이 두개 파일을 번갈아 열어서 컴파일/인소톨하면 해결 됩니다. -.- 왜 그런 지는 저두 -.-;;

5. Compile하고 install 한다. install까지 정상적이라면 컴포넌트 갤러리 창에 새로운
   탭이 하나 더 생기고 몇 개의 아이콘이 보일 것이다. 그리고,

   C:\Program Files\Borland\CBuilder6\Projects\Bpl
   C:\Program Files\Borland\CBuilder6\Projects\Lib

   디렉토리에 CPort관련 bli, lib 파일들이 생성된다.

6. 다음 파일을 수정한다. 수정하지 않으면 컴파일 시, 링크 시 낭패를 보게 된다.

   D:\DLTS_C\Component\CPort 3.0\sources\source\CPort.hpp
   D:\DLTS_C\Component\CPort 3.0\sources\source\CPortCtl.hpp

   파일을 수정한다. 수정없이 사용하면
   동일한 함수가 두번 정의됐다는 메세지와 함께 에러가 발생한다.

   [CPort.hpp]
          // 1. 파일 맨 윗부분에 다음을 추가한다.

       // Borland C++ Builder
       // Copyright (c) 1995, 2002 by Borland Software Corporation
       // All rights reserved

       // (DO NOT EDIT: machine generated header) 'CPort.pas' rev: 6.00

       #undef SetPort       // <= 이부분 추가 : 안하면 ComPort->SetPort("COM1");
                //                  이런 문장에서 Link 에러 발생


       // 2. 다음 2개의 함수를 주석 처리한다. (680라인 정도에 있음)
       /* Exception.CreateRes */ inline __fastcall EComPort(int Ident)/* overload */ : Sysutils::Exception(Ident) { }
       /* Exception.CreateResHelp */ inline __fastcall EComPort(int Ident, int AHelpContext)/* overload */ : Sysutils::Exception(Ident, AHelpContext) { }


   [CPortCtl.hpp]
           // 아래의 부분을 주석으로 처리 (240라인 정도에 있음)
       //typedef TBitmap TLedBitmap;
       //;

7. 두 개의 파일을 수정하였으면 Source 디렉토리에 있는 모든 *.hpp 파일을
   C:\Program Files\Borland\CBuilder6\Include\Vcl 로 복사

   이렇게 하면 일단 설치가 완료됨.


8. 이 후 프로젝트에서 Cport를 이용하려 할 때 다음과 같이 한다.
    8.1 Project -> Option 에서 Directories/Conditionals 탭을 연다.
    8.2 Library Path에
        D:\DLTS_C\Component\CPort 3.0\sources\source\ 디렉토리를 추가하여 준다.

    이거 안 해주면 또 xxxx.DFM 파일이 없네...뭐 어쩌내 하면서 링커 에러 또 나옴.

    8.3 Library Path에 추가시키면 그냥 사용하면 됨.

9. 참고로 볼란드 포럼에 CPort에 관한 많은 Q/A가 있으므로 이 것을 토대로 코딩하면
   될 것 같음.
  
* 참고
상기의 7,8,9번은 컴파일/링크 시 헤더 파일과 리소스 파일의 디렉토리를 어떤 식으로든 컴파일러에
알려 주기만 하면 됩니다.
  즉, install하고 난 후 header 파일 고치고(xxxx.hpp), 관련된 모든 파일을 자신이 개발하는
소스 디렉토리에 몽땅 카피하고, include 와 lib 디렉토리에 현재 디렉토리를 정해주면 문제없이
됩니다.
  즉, xxxx.hpp 파일, xxxx.dfm 파일, xxxx.res 파일(CPortImg.res)을 현재 개발 소스가 있는
디렉토리에 모두 복사하고, Project -> Option 에서 Directories/Conditionals 탭에서 include와
lib 디렉토리를 현재 디렉토리를 추가(default로 현재 디렉토리가 있음)하면 됩니다. 이 방법이
위의 7,8번의 과정을 거치지 않아서 좀더 간편한 방법 같습니다.
  아니면 모든 연관된 파일을 Program Files\Borland 쪽으로 가져다 놓는 것인데.. Builder 다시 깔고
뭐 이리 저리 왔다갔다 하는 과정에서 보니-제경우 좀 불편한 면이 있어서요..
  아뭏튼 구미에 맞게 사용하시길...

**
참고로 Cport-3.0.zip에 있는 CBuilder용 example은 5.0으로 되어 있으며 6.0에서
컴파일 시 이런 저런 에러가 발생하였으며 Lib 파일도 5.0으로 빌드된 파일을 찾고 해서,
이래 저래 실행해보지 못했음. 단, 코드 정도는 참고할 정도가 됨.

-볼랜드포럼에서 발췌 -

+ Recent posts