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
[42752] DirectX9SDK사용시 d3dtypes.h와 d3dtypes.h안에서 Multiple declaration Error 어떻게 처리하는지 아세요
임영우 [xsapiens] 1465 읽음    2005-12-01 12:18
안녕하세요.
WinXPPro + BC++B6 + DS90SDK + DSPack234환경입니다.

DSPack234까지 아무 문제 없이 설치가 되었습니다.

새 프로젝트를 하나 열고, 폼 위에 WideoWindows1을 하나 올렸습니다.
그리고 바로 Build All Projects를 했습니다.
그랬더니요... Multiple declaration 오류가 무진장 많아요.
[C++ Error] d3dtypes.h(703): E2238 Multiple declaration for '_D3DLIGHTTYPE'
[C++ Error] d3d9types.h(163): E2344 Earlier declaration of '_D3DLIGHTTYPE'
[C++ Error] d3dtypes.h(704): E2238 Multiple declaration for 'D3DLIGHT_POINT'
[C++ Error] d3d9types.h(164): E2344 Earlier declaration of 'D3DLIGHT_POINT'
.......
수도 없이 많습니다.
그래서 d3dtypes.h 파일과 d3d9types.h를 열어서 오류가 난 부분에 #ifndef/#define/#endif를 사용해서...
------------------------------------
#ifndef D3DLIGHTTYPE
typedef enum _D3DLIGHTTYPE
{어쩌구저쩌구} D3DLIGHTTYPE;
#define D3DLIGHTTYPE
#endif
------------------------------------
요렇게 처리를 했습니다.
그랬더니, 중복선언오류는 안나는데요.... 다른 오류가 생기네요.
d3dtypes.h 파일과 d3d9types.h 파일에서
D3DLIGHTTYPE를 써서 변수를 선언하는 부분이 오류가 발생하는군요.
변수타입이 정의되지 않았다고 오류가 듭니다.
혼자서 해결 해 보려고 header-file을 include한 경로를 쭈....욱 따라가보았으나
저의 실력으로는 추적해서 수정하는 것이 어렵네요.
이렇게 수정 할 것이 아니라... 제가 잘못 한 것인 듯 한데요..
혹시 제가 뭘 잘못했는지 아시나요?

그리고, DSPack234 설치설명서에서요. 아직도 좀 이해가 안가는 문장이 있는데요.
1 - Download the DirectX9 SDK from MS and update the "$(BCB)\Include" directory. You must also updates the DX SDK with the file provided in the "(DSPackDir)\Include" directory.
이 부분입니다.
=> MS에서 DirectX9 SDK를 다운받고 "$(BCB)\Include"디렉터리를 업데이트 하세요.
    DX SDK역시 제공된 "(DSPackDir)\Include"로 업데이트 해야 합니다.
해석은 이러한 듯 한데요.
이 말이 제게는 좀 모호하네요.
(1) DXSDK의 Include디렉터리의 내용을 $(BCB)\Include 와 (DSPackDir)\Include에 덮어 쓰란 말인가요?
----------------------------------------
copy DXSDK/include/*   $(BCB)\Include
copy DXSDK/include/*   (DSPackDir)\Include
----------------------------------------

(2) $(BCB)\Include디렉터리의 내용을  DXSDK의 Include와 (DSPackDir)\Include에 덮어 쓰란 말인가요?
----------------------------------------
copy $(BCB)\Include/*    DXSDK/include
copy $(BCB)\Include/*   (DSPackDir)\Include
----------------------------------------

(3) (DSPackDir)\Include디렉터리의 내용을 $(BCB)\Include 와  DXSDK의 Include에 덮어 쓰란 말인가요?
----------------------------------------
copy  (DSPackDir)\Include/*  $(BCB)\Include
copy (DSPackDir)\Include/*  DXSDK/include
----------------------------------------

위의 (1), (2), (3) 중에 어떤 것이 정답인가요?
혹시 아시는 분 계시면 좀 가르쳐 주세요. ^^;
그럼 오늘도 좋은 밤 되세요... ^^;
.

+ -

관련 글 리스트
42752 DirectX9SDK사용시 d3dtypes.h와 d3dtypes.h안에서 Multiple declaration Error 어떻게 처리하는지 아세요 임영우 1465 2005/12/01
50412     Re:DirectX9SDK사용시 d3dtypes.h와 d3dtypes.h안에서 Multiple declaration Error 어떻게 처리하는지 아 멋진남자 800 2007/08/29
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.