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
[44843] CPort 상속 클래스 만들기...
권기식.with☆ [orion96] 1070 읽음    2006-05-12 10:03
어쩌면 CPort라는 컴포넌트에 국한된 문제는 아니지 싶습니다.

일단 CPort의 포터 번호를 설정하려면 ComPort->Port  = "COM1"; 이런식으로 해주어야 하고..
이렇게 하려면 헤더 파일 가장 위에 #undef SetPort 라는 문장을 추가해야 합니다.

이렇게 쓰면 아무 문제가 없습니다.

그런데 TComPort를 상속 받는 임의의 클래스를 만들고 멤버 함수를 이용해서 포트를 설정하려고 합니다.
ComPortConfig(AnsiString ComPort, TBaudRate BaudRate) 라는 함수를 선언하고
this->Port = ComPort;
this->BaudRate = BaudRate;

라고 정의해주면 SetPortA를 참조할 수 없다는 링크 에러가 발생합니다.

이를 해결하려면 TComPort를 public으로 상속 받아 외부에서 직접 설정해야 하더군요.
저는 ComPort의 함수들은 다 숨겨두려고 하는데 말이죠.

그래서 헤더파일을 살펴보니 Port라는 속성(Property)은 SetPort라는 함수를 호출해서 쓰기를 하더군요.
SetPort라는 함수는 TCustomComPort에서 private function으로 선언되어있습니다.

링크 에러가 발생하는 이유도 모르겠고.
#undef SetPort라는 문장이 어떤 역할을 하는지도 잘 모르겠네요.
어딜 봐도 #define SetPort라는 건 안 보이던데...

이를 설명해주실 분이 안계신가요?

+ -

관련 글 리스트
44843 CPort 상속 클래스 만들기... 권기식.with☆ 1070 2006/05/12
44886     Re:CPort 상속 클래스 만들기... 공부맨 1191 2006/05/16
44887         Re:Re:CPort 상속 클래스 만들기... 권기식.with☆ 1237 2006/05/16
44892             Re:Re:Re:CPort 상속 클래스 만들기... 공부맨 1255 2006/05/17
44900                 감사합니다.. 권기식.with☆ 984 2006/05/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.