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
[66066] Re:Re:Re:Re:C++ Builder XE에서 CPort 4.1 사용하기 문의!
Kenzuro [kenzuro83] 3476 읽음    2012-01-27 15:12
빌더 님이 쓰신 글 :
: :
: : : : 두가지를 주석처리하면 정상적으로 컴파일이 됩니다. inline 함수 선언과 충돌이 일어나는 것 같은데요. 궁금한건 이것을 주석으로 처리해도 되는지 입니다. 지금 컴파일이 잘 되더라도 코딩하다가 문제가 생기면 난감할 것 같아서 문의 드립니다. 꼭좀 도와주세요 ㅜ.ㅜ
: : :
: : 인라인 함수는 주석 처리 해줘도 크게 문제 없는 건가요??
:
:
:
: 이와 같은 충돌이 발생하는 이유는 constructor 이름을 사용자가 지정할 수 있는 델파이 파스칼 언어와는 달리
: C++ 에서는 constructor 이름이 클래스 네임과 같아야 한다는 언어적인 제약이 있기 때문인데요.
:
: //    /* Exception.CreateRes */ inline __fastcall EComPort(
: //    /* Exception.CreateResHelp */ inline __fastcall EComPort(
:
: 위와 같이 인라인으로 정의된 콘스트럭터 부분은 주석 처리 해줘도 상관이 없습니다.
:
: EComPort 예외처리 클래스는 델파이로 구현되어있고, CPort 유닛에서 EComPort 예외처리 클래스의
: 목적은 CPort 유닛에서 자체적으로 핸들링하는 에러코드인 Code 값과 Win32 API인 GetLastError()를
: 이용해서 얻은 윈도우즈 시스템 에러코드 WinCode를 throw 를 통해 try ... catch ... 핸들러를 갖고있는
: 패런트에 이 두개의 에러코드 값을 전달하는 것이 주 목적이기 때문입니다.
:
: 가령 CPort를 사용할 때...
:
: try {
:            .......
:            CPort 코드사용
:            .......          
: }
:  catch (EComPort &e)
: {
:        int nCode = e.Code;
:        int nWinCode = e.WinCode;
: }
:
: 위와 같은식으로 애플리케이션에서 try.... catch 블럭을 지정해 준다면....
:
: 에러가 발생했을 때.. CPort 유닛에서 아래와 같은 식으로 예외를 던져 주도록 구현되어있어서
: throw EComPort( Code, GetLastError());
:
: 애플리케이션에서 try.... catch.. 블럭을 통해서 예외상황을 캐치해 내고, Code, WinCode 두개의
: 에러코드 값도 알아 낼수 있는 식입니다.
:
: CPort 유닛에서 throw 할 때 생성되는 EComPort  객체를 응용프로그램에서 단지 사용하는 구조라는 거죠.
:
: C++ 응용 프로그램에서 EComPort를 상속받아 클래스를 확장해서 사용하는 것도 아니고...
: Exception 클래스를 상속받아 파스칼로 CPort 유닛에서 구현해 놓은 EComPort를 그대로 사용하는 거기 때문에
: Exception에서 정의되어있는 컨스트럭터 들을 C++ 헤더파일에서 따로 오버로드해서 정의할 필요가 없습니다.

감사합니다. 많은 도움이 되었습니다!! 다시한번 감사 드립니다!!

+ -

관련 글 리스트
66045 C++ Builder XE에서 CPort 4.1 사용하기 문의! Kenzuro 1773 2012/01/26
66049     Re:C++ Builder XE에서 CPort 4.1 사용하기 문의! 빌더 1809 2012/01/26
66051         Re:Re:C++ Builder XE에서 CPort 4.1 사용하기 문의! Kenzuro 1787 2012/01/26
66055             Re:Re:Re:C++ Builder XE에서 CPort 4.1 사용하기 문의! 빌더 1956 2012/01/26
66066                 Re:Re:Re:Re:C++ Builder XE에서 CPort 4.1 사용하기 문의! Kenzuro 3476 2012/01/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.