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

C++빌더 FAQ
C++Builder Programming FAQ
[108] File not found: 'Designintf.dcu' 에러 대처법
이정구 [appleii] 31329 읽음    2007-06-21 14:37
Delphi 로 된 Component 를 설치하다 보면 Dsgnintf.dcu 또는 Designintf.dcu 를 찾을 수 없다는
에러 메시지를 보게 됩니다. 이 에러 메시지가 나는 이유는 무엇일까요?

Component 에는 Design Time 에서 사용하기 쉽도록 Component Editor, Property Editor 가
포함되어 있는 경우가 있습니다. Delphi 에서 Design Time 에 필요한 Component Editor, Property Editor 를
사용하기 위해서는 uses 부분에 Designintf 또는 Dsgnintf 를 사용해야 합니다. 어떤 것을 사용할지는
Delphi 버전에 따라 다르겠지요. Delphi 6 이후부터는 Designintf 를 사용합니다.

C++Builder 에서 사용할 경우 약간 까다로운 문제가 발생합니다.
C++Builder 에는 Delphi Compiler 인 dcc32.exe 와 C++ Compiler 인 bcc32.exe 가 공존합니다.
따라서 패키지 파일인 bpk 파일에 두개의 컴파일러를 위한 옵션이 따로 있습니다.

bpk 를 텍스트 에디터로 열어서 그 내용을 보면 다음과 같은 항목이 있습니다.

<CFLAG1 value="-Od -H=$(BCB)\lib\vcl60.csm -Hc -Vx -Ve -X- -r- -a8 -b- -k -y -v -vi- -c
      -tWM"/>
<PFLAGS value="-$YD -$W -$O- -$A8 -v -JPHNE -M"/>


CFLAG1 은 C++ Compiler 인 bcc32.exe 를 위한 옵션입니다.
PFLAGS 는 Delphi Compiler 인 dcc32.exe 를 위한 옵션입니다.

Component 를 C++Builder 로 만들었다면 PACKAGES value 값에 designide.bpi 가 포함됩니다.
<PACKAGES value="rtl.bpi ApLabel_bcb6.bpi designide.bpi vcl.bpi vcljpg.bpi"/>


Delphi 로 Component 를 만들었다면 문제가 발생합니다. Delphi Compiler 인 dcc32.exe 에
designide 패키지를 사용하겠다는 것을 알려주어야 됩니다. 그런데 얄밉게도 Builder 가 알아서
처리하지 못합니다. 따라서 사용자가 수동으로 처리를 해주어야 합니다.

dcc32.exe 의 옵션을 보면 -LU 라는 옵션이 있습니다. 패키지를 사용하겠다는 것을 알려주는
옵션입니다. 이 옵션을 사용자가 수동으로 지정해 줍니다. 다음과 같이 말입니다.

<PFLAGS value="-$YD -$W -$O- -$A8 -v -JPHNE -M -LUDesignIde"/>
김태선 [cppbuilder]   2007-06-21 20:40 X
정말 유용한 정보군요.
많은 사랆에게 도움이 되겠습니다.
^^
이정구 [appleii]   2007-06-21 21:52 X
이런 사소한 문제점이 개선되지 않고 남아있었다는 것이 놀랍습니다. 몰라서 고치지 못했던 것일까요. 어쩔 수 없어서 남겨둔 것일까요.
김태선 [cppbuilder]   2007-06-22 09:03 X
모르는 사람이 많을 겁니다.
사실 저도 몰랐습니다.
문제가 생기면 해결하기는 하지만... 구체적인 원인을 몰랐거든요.
조중협 [alumio]   2007-06-29 10:17 X
감사합니다. 저에겐 정말 큰 문제였거든요 ^^
이 문제로 많은 부분이 해소될 듯 합니다. 정말 감사드립니다.
이정구 [appleii]   2007-07-14 22:10 X
추가하자면, dcc.exe 가 요구하는 compiled package 는 Delphi 에서 사용하는 designide.dcp 입니다. 요구하는 compiled package 를 추가하고 compile 하면 dcu 가 생깁니다. 이것을 Builder 에서 쓰기 위해서 obj , hpp 로 변환을 하는데 그 때부터는 Builder 용 compiled package 인 designide.bpi 가 필요합니다.

그러므로, designide.bpi 를 추가하는 과정이 또 필요합니다.
만약, bpk 를 직접 만들어야 하는 상황이라면 이런것까지 생각해야 합니다.

요약하자면,
1. pas 를 compile 하여 dcu 를 만든다. (필요한 compiled package 를 수동으로 추가)
2. dcu 를 변환하여 Builder 사용하는 obj, hpp 로 만든다.(이제부터는 obj, hpp 만 사용)
3. obj, hpp 에서 요구하는 compiled package 는 wizard 에서 add 해준다.

즉, Builder 에서는 delphi source 를 dcc.exe 로 compile 하고 , 이것을 변환하여 C++ 에서 이용가능한 형태로 만드는 것으로 VCL을 이용할 수 있도록 하고 있습니다.

+ -

관련 글 리스트
108 File not found: 'Designintf.dcu' 에러 대처법 이정구 31329 2007/06/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.