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

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[27344] Re:비쥬얼 스튜디오에서 C++빌더 사용할 방법 없을까요
빌더(TWx) [builder] 1170 읽음    2017-07-01 12:55
볼포 님이 쓰신 글 :
: 솔직이 비쥬얼스튜디오 사용하다 보면 에디터도 디버거도 무지 잘만들었다는 생각이 듭니다
: 그래서 비쥬얼스튜디오에서 C++빌더로 할 작업들을 폼디자인하고 소스수정하고 컴파일하고 디버깅 할 수 있으면
: 좋겠다는 생각이 자주 드는데요. 그런 방법이 있으면 좋겠네요.



답변:


예전에 구현해 봤던 경험이 있어서 몇자 적습니다.

엠바 IDE를 사용하지 않고 Visual Studio IDE를 이용해서 C++ 빌더 개발환경을 사용하려면
Visual Studio IDE Extension 아키텍쳐에 맞게 Form Designer, Project  System, Goto Declaration/Definition 처리를 위한
Parser, Debugger Engine 등을 구현해 주면 되는데요.

엠바 IDE를 대체할 Form Designer는 DesignIntf 에 정의되어있는 IDesigner, IDesinerNotify(System.Classes),
IDesignerHook 등의 몇가지 인터페이스를 구현해주는 컨테이너 클래스를 정의해서 Visual Studio Extension 아키텍쳐에 맞게
Thunk 레이어를 구현해주면 처리해야할 코드가 좀 많아지지 복잡할 건 없습니다.

그리고 Goto Declaration/Definition 처리를 위한 파서는 파스칼을 다루지 않고 C++만 사용하는 이상 별도로 구현해 주지 않아도
Visual Studio에서 디폴트로 제공하고 있는 C++ Language Service를 이용해도 충분합니다.

그리고 Visual Studio IDE Project  Sytstem도 이걸 전체를 구현하려면 꽤 복잡해 지지만, 전체를 구현할 필요 없이
llvm 사이트에 가보면 Visual Studio IDE에서 clang 컴파일러를 사용할 수 있게 해주는 프로젝트 시스템 제멀 파일을 제공하
고 있는데 (xml 스크립트), 이걸 수정해서 엠바 C++ 컴파일러와 옵션, 그리고 엠바 링커를 사용하도록 수정해주면 되는데요.

문제는 디버거 부분 입니다.

Visual Studio IDE 디버깅 세션과 연동해서 돌아가도록 디버거 엔진 익스텐션을 만들더라도 밑바닥에서 델파이로 구현되어 있는
코드들을 C++ 빌더가 이용하고 있는 이상, 전체를 인터페이스 하기 위해선 엠바 쪽 디버거 인터페이스를 연계해서 사용할 수
있어야 하는데, 엠바 애들이 원래 이렇게 폐쇄 적인지는 모르겠으나 인터페이스를 제공해주는 게 전혀 없어서 문제가 됩니다.

RAD Studio 10.2에서는 나아진게 있을까 싶어서 설치해서 확인해 보니까 이번에도 마찬가지네요.

bordbk250.dll 이 놈을 이용해야 하는데, 이게 COM Server 구조로 구현되어 있는 디버거 코어 인터페이스인데
제공되는 헤더파일이 있어야 연계를 할 수 있는데 전혀 제공하고 있는 게 없습니다. 인터페이스 헤더 없이 DirectX를 쓸 수
없는 것과 마찬가지.

Visual Studio Extension 툴을 만든다고 해도 엠바 애들이 디버거 코어 인터페이스 헤더를 오픈하지 않는 이상 디버거 기능을
사용할 수 없는데 이걸 만들어서 뭐에 쓰겠습니까.

+ -

관련 글 리스트
27342 비쥬얼 스튜디오에서 C++빌더 사용할 방법 없을까요 볼포 864 2017-06-29
27344     Re:비쥬얼 스튜디오에서 C++빌더 사용할 방법 없을까요 빌더(TWx) 1170 2017-07-01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.