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

C++빌더 Q&A
C++Builder Programming Q&A
[21921] 정말 궁금한 질문... 답변은 아무나... 자기의 생각을 적어 주세요. ^^
양동선 [yds1004] 772 읽음    2002-10-07 23:57
이 질문을 하면서, 정말 부끄럽네요.
그래도, 뭘 모르는 지를 느꼈다는게 정말 다행이라는 생각이 듭니다.

문득 여러개의 화일을 #include라는 프리프로세서를 쓰면서 프로젝트를
만들다 보니, 이상한 에러가 뜨더군요.

Multi decleare XXX

정말 황당하더군요. 나름대로 설계를 한다고 해서 copy & paste했는데...

그래서, 과연 어떻게 화일들을 include 해야 할지...
너무 막연하죠? 예를 함 들어 볼까요?

a.cpp a.h => 요게 프로젝트의 최하위 레이어.

b.cpp b.h => 요개 두번째 최하위 레이어.

cDLL.cpp cDDl.h => 요개 최상위 레이어.(DLL을 만들기 위해 만든 DLL프로젝트)

위와 같은 구조에서, a.h를 b.h에 include 시켰습니다. a.h가 b.h에 포함되는
레이어니 당연하다고 생각합니다.

b.h를 cDLL.h에 include 시켰죠. 최상위 레이어에 include하기 위해서 말이죠...

근데, 문제는 cDLL.h에 #define EXPORT_TYPE __declspec(dllexport)에 포함되어
있는 관계로, a.h, b.h에 include 시켰다는거죠. 그러면 당연히 에러가 뜨겠죠?

그래서 #define EXPORT_TYPE __declspec(dllexport)를 최하위 레이어인 a.h에
include 시켰다는거죠.
왜 이렇게 했냐구요? include된 관계상 최하위에 define하고 그 하위의 레이어를
차근히 include하면 된다고 생각해서 이었죠?

근데도, 에러가 나오네요. ^^

암튼 이러한 include에 관계된 개념 알고 계신분은 답변 부탁 드립니다.
아마도 제게 깨달음이 필요할거 같군요. ^^

+ -

관련 글 리스트
21921 정말 궁금한 질문... 답변은 아무나... 자기의 생각을 적어 주세요. ^^ 양동선 772 2002/10/07
30869     Re:정말 궁금한 질문... 답변은 아무나... 자기의 생각을 적어 주세요. ^^ 나오미 620 2002/10/08
30868     Re:정말 궁금한 질문... 답변은 아무나... 자기의 생각을 적어 주세요. ^^ 나오미 677 2002/10/08
21948     Re:근본적으로 중복 인클루드를 방지하는.. 코드를... 아제나 812 2002/10/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.