C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[3489] C++Builder6가 델파이6보다 나아진 점...
박지훈.임프 [cbuilder] 3589 읽음    2002-02-19 15:39
다들 아시고 계시겠지만, C++Builder의 각 버전은 델파이와 비슷하게 만들어집니다.
거의 항상 C++Builder 시리즈에 추가된 기능이라봤자 델파이에 이미 소개되었던 기능이 다시 추가되니,
좀 맥이 빠지지요.

하지만 델파이의 기능만 추가해서 C++Builder가 만들어지는 것은 아닙니다.
빌더에는 상당한 개선이 추가되기 마련이지요.

프세에 실을 리뷰기사를 쓰는 동안 여러가지로 델파이6와 C++Builder6를 비교하게 되었는데...
(어제 새벽에야 겨우 보내주었답니다)
역시 이번에도, C++Builder6에서는 델파이6보다 여러가지로 개선이 있었습니다.
리뷰 기사는 델파이나 비주얼C++과 비교하기 위해 쓴 것이 아니므로 이런 내용은 자세히 싣지 못했습니다만.

델파이6에서 지원되는 웹서비스 서버를 만들려면, 먼저 New Item 다이얼로그의 WebService 탭에서
SOAP Server Application을 선택하면 됩니다.
이렇게 하면 웹서비스 서버 프로젝트가 만들어지는데.. 사실 이전의 웹브로커 프로젝트와 완전히
동일한 프로젝트에 HTTPSoapDispatcher, HTTPSoapPascalInvoker, WSDLHTMLPublish의 세가지 컴퍼넌트만
올려진 상태입니다. 이 세가지 컴퍼넌트가 HTTP 프로토콜의 상단에서 웹서비스 관련 기본 동작을
모두 처리합니다.

그렇다면, 실제로 웹서비스에 구현할 로직은 어디서 코딩할까요?
실제 로직을 구현하려면 Invokable이라는 코딩을 할 유닛을 개발자가 직접 만들어줘야 합니다.
이 유닛은 IInvokable 인터페이스를 상속받는 인터페이스를 만들고 그런 후에 다시 그 인터페이스를
사용하는 클래스를 만든 후, 거기에 코딩을 해야 합니다. 개발자가 직접 말이죠.

델파이6는 기본적으로 이 Invokable 유닛들을 만들어주지 않기 때문에, 델파이6가 출시된 후에
볼랜드에서는 별도로 정식등록한 고객들을 대상으로 Invokable 위저드를 배포했습니다.
이넘이 바로 Invokable 유닛들을 자동으로 만들어주는 녀석이지요.

이넘을 깔고 나면, New Items 다이얼로그에서 웹서비스 프로젝트를 새로 만든 후에, 다시 New Items
다이얼로그로 돌아가서 Invokable 위저드로 유닛들을 더 생성해야 하지요.

C++Builder6에서는 이 Invokable 위저드가 기본으로 깔려있을 뿐 아니라, 웹서비스 프로젝트를 새로
생성한 후 자동으로 Invokable 위저드를 실행해서 Invokable 유닛들을 생성해줍니다.
손이 훨씬 덜 가지요.

또한.. 웹서비스 클라이언트 쪽에서도, 델파이6의 웹서비스 임포터에서는 아직 닷넷으로 만들어진
웹서비스를 임포트하지 못하는 것으로 알려져 있는데요.
C++Builder6에서는 닷넷 웹서비스를 불러 올 수 있습니다. 이번 리뷰에서도 닷넷 웹서비스를 임포트하는
예제를 소개했답니다.

그 외에도... 웹스냅에서도 약간의 개선이 있었던것 같습니다만 이쪽은 자세히 살펴보지 못했구요.
Tools 메뉴에 보면 델파이에는 없는 Build Tools라는 새로운 유틸리티가 등록되어 있는데..
이거 재밌습니다. (리뷰에서 소개했구요.)
그외에도 자잘한 차이점이 꽤 있는데.. 다 찾아내지 못한 거 같습니다.


참고로..
C++Builder와 Delphi는 5 버전에서는 BPL들이 거의 완벽하게 호환되었기 때문에 한 시스템에서
두개모두 깔아놓고 써도 아무 문제가 없었습니다만, 6 버전에서는 빌더6가 델파이6보다 개선이 꽤
많이 있었던 관계로 bpl들 중 몇개가 다릅니다.

그래서 델파이6를 먼저 깔고 빌더6를 깔면, 델파이6가 제대로 동작을 안합니다.
문제는 system32 디렉토리에 깔려있는 rtl60.bpl, inet60.bpl, websnap60.bpl, webdsnap60.bpl
이렇게 네개의 bpl들 때문입니다. 빌더6가 델파이6의 파일들을 덮어써버리지요.

빌더6와 델파이6를 동시에 돌리려면.. 델파이6를 먼저 설치한 후, system32 디렉토리에서 위의
bpl 파일 네개를 델파이의 bin 디렉토리에 복사해놓으신 다음 빌더6를 설치하면 됩니다.
이후로 델파이가 실행될 때는 위 네개의 bpl 파일들을 system32 디렉토리가 아닌 bin 디렉토리에서
읽어들이므로 두가지의 파일들이 서로 충돌하지 않습니다.

단, 이 경우에는 델파이6는 런타임패키지의 일부가 system32에 있지 않은 셈이므로, 아예 런타임
패키지를 모두 포함한 실행파일을 만들어야 개발 PC에서 제대로 동작합니다.
물론 런타임패키지를 제외시키고 빌드하더라도, 배포할 때는 bin 디렉토리에 포함된 런타임 패키지들을
배포하면 되니까 별 문제는 없지요.

그럼...


+ -

관련 글 리스트
3489 C++Builder6가 델파이6보다 나아진 점... 박지훈.임프 3589 2002/02/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.