C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[848] 인디 9.0.18 버전 컴포넌트를 설치 없이 사용하기.
김태선 [cppbuilder] 7531 읽음    2009-01-25 02:12
인디 10버전이 나오기 전까지 가장 유명한 것이 9 버전이고 이 중에서도 9.0.18버전이 실전에서도 많이 사용됩니다.
성능도 매우 훌륭해서 웬만한 요구에는 무리없이 사용할 수 있습니다.
흔히 기본 소켓으로 부르는 TClientSocket과 TServerSocket 은 빌더6 에는 있으나 빌더 버전이 올라가면서
퇴출된 컴포넌트로 서버로 동작하는 프로그램을 만들기는 매우 부족해서 사실 안 쓰는게 낫습니다.
예전에 저도 처음에는 동작이 왜 이리 부자연스럽나 했는데 인디로 바꾸니 참 부드럽게 동작하더군요.
특히 TServerSocket는 절대 쓰지 마시기를. TClientSocket 은 용도에 따라 쓰는 것도 괜잖습니다.

빌더 6에는 Indy 8 버전이 있고, 다른 빌더에는 인디가 없거나 다른 버전이 있습니다.
그래서 이런 방법도 알아두면 나중에 쓸모가 있을 것으로 생각됩니다.


이 실험은 빌더 6에서 행해졌습니다.
본디 인디는 구성요소가 워낙 복잡하고 많아서 정식으로 설치하여 사용하는 것이 좋습니다.
인디 컴포넌트는 모두 None Visual Component 지만 구성요소가 많아 설치하지 않고 쓰려면
인디에 대해 잘 알거나, 정식 버전에서 쓴 것을 그대로 흉내내서 쓰면 됩니다.

아래는 정식으로 설치해서 사용하는 방법.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=494

하지만 다 만들어진 소스를 남길 때나 다른 컴에 옮길때 등 여러가지 이유로 다른 컴의 개발툴에
인디 9을 새로 설치해서 쓰기 귀잖을때가 있습니다. 무엇보다도 인디 9 버전은 빌더에 설치하려면
신경쓰이는 조금 까다로운 과정을 거쳐야 합니다.

하지만 이 방법은 매우 쉽습니다.
일단 인디를 다운로드 받은 뒤 빌더용으로 컴파일 합니다.
빌더 6 기준으로 보자면 V06 폴더 밑에 컴파일한 결과물들이 만들어 집니다.
필요한 것은 빌더용 헤더파일은 *.hpp 와 최종 결과물 Lib 인 indy60.ib만 있으면 됩니다.

빌더6의 lib\release 폴더 밑에 보면 indy.lib 가 있는데 indy8.lib 로 원래 버전을 붙여 이름을 바꾸어 놓고
여기에 컴파일된 결과물인 indy60.lib를 indy.lib 로 이름을 바꾸어 복사 해 놓습니다.

그리고 소스에서 인디를 써야 하는데 인디 헤더파일을 찾을 수 있게 해야 하는데 원래 있던 헤더 파일이
방해를 합니다. 그래서 빌더6의 include\vcl 에 id*.hpp 를 indy8이라고 폴더를 만든뒤 모두 옮깁니다.

이렇게 하면 기본 준비는 끝입니다.
하지만 프로젝트에서 인디 헤더파일 hpp를 찾게 하려면 '프로젝트 옵션->directory' 에서
include 파일을 찾을 수 있도록 패스를 추가하는 것은 물론 해야 합니다.
이게 귀잖으면 컴파일된 V06\*.hpp 파일을 빌더6의 include\vcl로 옮겨도 됩니다.

그리고 프로그램을 코딩하면 됩니다.

아무래도 코딩을 하려면 어떤 파일을 include 해야 하는지 알아야 하는데,
인디를 사용해 보신 분들이라면 인디로 만들 프로그램에서 include 하는 것을 기준으로
필요한 것을 찾으면 될 것으로 생각됩니다.
아주 간단히는 자신이 원하는 클래스가 있는 헤더 파일을 찾아서 Include 해주면 대략
나머지는 알아서 처리됩니다만, 인디 예제도 많고 하니 그렇게 난감할 문제는 아닌 것 같네요.

본래 인디가 없던 빌더 버전인 경우는 프로젝트에 Indy.lib 를 포함해 주면 됩니다.


빌더 2006 Explorer 버전으로 컴파일해서 id*.hpp 와 indy.lib 를 얻을 수 있다면
빌더 2006 Explorer 버전에서도 멋진 인디 컴포넌트를 사용할 수 있게 됩니다.
하지만 Explorer버전에는 델파이 커맨드라인 컴파일러가  없으니 컴파일하려면 다른 방법이 필요합니다.
빌더 버전이 올라가면서 obj 포멧도 업글이 되었는데, 빌더 6 obj와 빌더 2006 이상의 obj는 그 포멧이
좀 틀려 호환성에 문제가 있습니다. 이는 MS 개발툴도 마찬가지 입니다.

그럼.
김태선 [cppbuilder]   2009-02-01 18:23 X
만일 빌더6에서 인디가 설치되어 있지 않은 Personal 버전 같은 경우는 순수 코딩으로 해야 겠지만,
인디 8이 default로 설치되어 있는 버전에서는 위와 같이 조치하고 나서
이미 설치되어 있는 인디 8을 디자인 타임에 그대로 쓸수 있습니다.
이렇게 해도 물론 최종 생성되는 것은 인디 9 버전이 쓰이게 됩니다.
인디 8과 9는 유사성이 높아서 바뀌지 않은 부분에 대해서는 이렇게 사용해도 됩니다.
물론 바뀐 부분은 문제가 되는데 이건 적당히 코딩으로 처리하면 됩니다.
김태선 [cppbuilder]   2009-02-14 00:16 X
조금 특이한 팁이긴 한데... 그냥 참고하시고요.

인디는 정식으로 설치해서 사용하는 것이 좋습니다.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=856

+ -

관련 글 리스트
848 인디 9.0.18 버전 컴포넌트를 설치 없이 사용하기. 김태선 7531 2009/01/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.