2014-12-12 6 views
-2

매크로 재정의 문제에 대한 게시물이 많이 있지만 문제가 어떻게 수정되었는지 이해할 수 없습니다. 내가 $(SolutionDir)\common\ExternalLibs\directxAdditional Include Directories을에서 제거 할 때,어떻게 재정렬을 포함하는 디렉토리가 매크로 재정의 문제를 해결합니까?

1>c:***************************************\directx\dxgitype.h(12): warning C4005: 'DXGI_STATUS_OCCLUDED' : macro redefinition (############.cpp) 
1>   C:\Program Files (x86)\Windows Kits\8.0\Include\shared\winerror.h(49449) : see previous definition of 'DXGI_STATUS_OCCLUDED' 

그러나 내 프로젝트가 here
과 같은 C/C++ -> General -> Additional Include Directorieshere
을 표시에 표시된 것처럼 VC++ Directories->Include Directories의 순서로 포함 된 경우

나는 macro redefinition을 경고 얻을 VC++ Directories->Include Directories으로 이동하면 경고가 사라집니다.

나는 winerror.hdxgitype.h을 모두 확인했으며 #undef DXGI_STATUS_OCCLUDED을 보지 못했습니다. 재주문이 경고를 어떻게 수정 했는가? 다른 헤더에 정의되도록하려면 헤더 중 하나 이상에 #undef이 있어야합니다. 맞습니까? 또한 Additional Include DirectoriesInclude Directories 또는 그 뒤에로드됩니까?

+0

_relevant_ 정보를 포함하는 이미지에 대한 링크를 포함하지 마십시오. 문제가되는 링크가 죽은 링크가되면 다른 커뮤니티 회원에게는 유용하지 않습니다. ** 게시물 **을 수정하여 거기에 포함하십시오. –

+0

@Captain Obvlious, 우선 이미지를 게시 할 수 없습니다. 내가 시스템을 시험해 보았을 때 나는 이미지를 게시하기 위해 10 이상의 평판이 필요하다고 말했다. 두 번째로, 링크는 죽지 않았습니다! 그래서 왜 투표 했니? – interested

+0

그런 다음, Include 디렉토리 구성 필드의 내용을 복사하여 붙여 넣기하십시오. FWIW는 제공 한 이미지가 불완전하며 Visual Studio에 구성된 모든 포함 디렉터리를 표시하지 않습니다. –

답변

0

무엇이 $(SolutionDir)\common\ExternalLibs\directx에 있습니까? 필자는 이전 DirectX SDK 헤더를 새 Windows 8.0 SDK 헤더와 함께 사용한다는 것을 의미하는 기존 DirectX SDK 헤더 사본을 가지고 있다고 의심합니다. 표시되는 오류는 MSDN에 구체적으로 언급되어 있습니다.

c. 프로젝트에서 DXGIType.h에 대한 모든 참조를 제거하십시오. 이 헤더는 Windows SDK에는 존재하지 않으며 DirectX SDK 버전은 새로운 winerror.h와 충돌합니다.

레거시 DirectX SDK를 사용하지 않는 것이 이상적입니다.이 폴더를 제거해도 여전히 빌드가 완료되면, 그렇게해야합니다.

그렇지 않은 경우 기존 DirectX SDK와 Windows 8.x SDK를 함께 사용하는 경우는 MSDN에 있습니다. 기본적으로 Windows 8.x SDK include/lib 경로 인 다음에 DirectX SDK include/lib 경로 을 넣어야합니다.

블로그 게시물 Where is the DirectX SDK도 참조하십시오.