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으로 빌드된 파일을 찾고 해서,
이래 저래 실행해보지 못했음. 단, 코드 정도는 참고할 정도가 됨.
-볼랜드포럼에서 발췌 -