|
이 질문을 하면서, 정말 부끄럽네요.
그래도, 뭘 모르는 지를 느꼈다는게 정말 다행이라는 생각이 듭니다.
문득 여러개의 화일을 #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에 관계된 개념 알고 계신분은 답변 부탁 드립니다.
아마도 제게 깨달음이 필요할거 같군요. ^^
|