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
[643] C++ Builder 에서 델파이 소스 컴파일하기
이정구 [appleii] 13269 읽음    2007-05-01 22:34
--C++ Builder 에서 델파이 소스 컴파일하기 --
C++ Builder 에는 C++ 컴파일러인 bcc32.exe 뿐만 아니라 델파이 코드를 컴파일 할 수 있는 dcc32.exe 도 있습니다.
이것을 이용하면 파스칼 소스를 컴파일하는 것이 가능해집니다.

그렇기 때문에 델파이로 만들어진 컴포넌트들을 컴파일해서 설치할 수 있는 것입니다.

그러나, C++ Builder 는 델파이가 아니므로 제한적인 기능만 사용할 수 있습니다.
Code Completion 기능을 지원하지 않으므로 빌더에서 델파이쓰듯 사용할 수는 없습니다.

컴포넌트 중에는 컴포넌트의 사용법을 알려주기 위해서 예제를 제공하는 경우가 있습니다.
대부분의 컴포넌트들은 델파이로 만들어졌고 당연히 예제도 델파이로 만들었습니다.
때문에, 예제를 봐도 무슨 내용인지 알아보기가 어렵습니다. 델파이 소스를 봐도 모르겠지만 어떻게 동작하는지
일단 실행이라도 시켜보고 싶다는 생각이 들 때가 있습니다.

델파이로 만든 컴포넌트 소스를 컴파일할 수 있다면 당연히 델파이로 만든 예제도 컴파일 수 있을 것입니다.



자, 그럼 시작해 봅시다. Borland C++Builder 6 기준입니다.

C++ Builder 를 처음 시작하면 기본적으로 폼이 뜨게 됩니다.
그상태에서 저장을 하게 되면 모두 6개의 파일이 생성됩니다.

기본적으로 주어지는 이름으로 저장했다면 다음과 같은 파일이 생깁니다.

    Project1.bpr   :  컴파일에 필요한 설정파일
    Project1.cpp  :  WinMain 함수가 있는 엔트리 소스
    Project1.res   :  리소스 파일 , 기본적으로 실행파일의 아이콘이 포함
    Unit1.cpp        :  폼의 이벤트 핸들러를 저장
    Unit1.dfm        :  폼의 상태를 저장하는 파일
    Unit1.h           :  Unit1.cpp 의 헤더파일


기본적인 상태는 cpp 파일을 컴파일하는 것이지만 Project 메뉴에서 Add to Project , Remove from Project 를 통해서
파스칼 소스인 pas 파일을 추가할 수 있습니다.




화면에 표시된 두 개의 파일을 Remove 합니다.

그럼 위의 6개의 파일중에서 Project1.res , Unit1.cpp , Unit1.dfm , Unit1.h 4개의 파일이 제거되는 것입니다.

Unit1 의 3개의 파일은 한덩어리이기 때문에 Unit1.cpp 만 제거해도 자연스럽게 프로젝트에서 제외됩니다.
프로젝트의 리소스 파일인 Project1.res 를 제거하는 이유는 다른 프로젝트에서 사용하는 res 에서 아이콘등을 새로
만들었을 수도 있기 때문입니다. 기본생성될 때는 실행파일의 아이콘 하나이지만 프로젝트의 목적에 따라서 추가될수도
있습니다. 컴파일하려는 소스에서 그 리소스 파일을 원할 수 있으므로 Project1.res 를 제거하고 해당 파스칼 소스와 연관된 res 를 추가하는 것입니다.


그리고 Add to Project 를 통해서 원하는 pas , res 를 추가하는 것입니다.
만약 원하는 파일이 MainUnit.pas 와 Example.res 라면 그 두개의 파일을 추가하면 되는 것입니다.
MainUnit.pas 를 추가하면 MainUnit.dfm 도 한덩어리로 포함됩니다.



그럼, 적당한 예제를 가지고 컴파일해 볼 필요가 있습니다.

Graphics32 는 이미지 변환용 컴포넌트중에서 제일 유명한 컴포넌트입니다. 델파이로 작성되었으며 예제 또한 델파이입니다. 일부예제는 bpr , cpp 파일을 제공하지만 대부분은 없더군요.

예제중에서 vcl\Blending\TextureBlend_Ex 디렉토리의 예제를 가지고 컴파일하는 방법을 알아보겠습니다.

File -> New -> Application 하면 폼이 뜹니다.

Save All 합니다. 저장위치는 위에서 말한 예제가 있는 디렉토리입니다.


저장할 때 이름을 주의해야 합니다.

TextureBlend_Ex.bpr 로 저장하면 res , cpp 도 같이 생깁니다. 이렇게 되면 기존의 TextureBlend_Ex.res 를 덮어쓰기합니다. 그러므로 이름을 살짝 바꿉니다. TextureBlend_Ex_bcb6.bpr 로 저장합니다. cpp 는 그냥 Unit1.cpp 로 저장합니다. 그런데 이때도 주의해야 합니다. cpp 파일을 저장하면 같은이름의 dfm 파일도 생깁니다. 그런데 델파이와 C++Builder 는 폼 파일의 확장자가 dfm 으로 동일합니다. 때문에 같은 이름으로 하면 덮어쓰기가 될 위험이 있습니다. TextureBlend 예제는 메인 폼이 MainUnit.dfm 이므로 MainUnit.cpp 로 저장하면 자동으로 MainUnit.dfm 이 생기면서 기존의 MainUnit.dfm 을 덮어쓰기 합니다. 따라서 이 이름을 피해서 저장해야 합니다.


이제, Project -> Remove from Project 를 통해서 TextureBlend_Ex_bcb6.res , Unit1.cpp 를 제거합니다.

Project -> Add to Project 를 통해서 TextureBlend_Ex.res , MainUnit.pas 를 추가합니다.

Project -> Options... -> Directories/Conditionals 에서 Include Path 와 Library Path 에 Graphics32 의 소스가 있는 디렉토리를 추가합니다. (정상적으로 설치했다면 소스가 있는 디렉토리에 obj , hpp 파일들이 있겠죠?)



저장 후 컴파일합니다.

+ -

관련 글 리스트
643 C++ Builder 에서 델파이 소스 컴파일하기 이정구 13269 2007/05/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.