DirectX SDK는 어디에 있나요?
Windows 8부터 DirectX SDK는 Windows SDK의 일부로 포함됩니다.
원래 Windows를 기반으로 게임 개발을 위한 고성능 플랫폼으로 DirectX SDK를 만들었습니다. DirectX 기술이 발전함에 따라 더 광범위한 애플리케이션과 관련이 있습니다. 현재 컴퓨터에서 Direct3D 하드웨어를 사용할 수 있으므로 기존 데스크톱 애플리케이션에서도 그래픽 하드웨어 가속을 사용합니다. 병렬로 DirectX 기술은 Windows와 더 통합됩니다. DirectX는 이제 Windows의 기본 부분입니다.
Windows SDK는 Windows용 기본 개발자 SDK이므로 이제 DirectX가 포함됩니다. 이제 Windows SDK를 사용하여 Windows용 훌륭한 게임을 빌드할 수 있습니다. Windows 11 SDK, Windows 10 SDK 또는 Windows 8.x SDK를 다운로드하려면 Windows SDK 및 에뮬레이터 보관참조하세요.
DirectX SDK의 일부였던 다음 기술과 도구는 이제 Windows SDK의 일부입니다.
기술 또는 도구 | 설명 |
---|---|
Windows 그래픽 구성 요소 |
Direct3D 및 기타 Windows 그래픽 API(예: Direct2D)에 대한 헤더 및 라이브러리는 Windows SDK에서 사용할 수 있습니다. 참고: 사용되지 않는 D3DX9/D3DX10/D3DX11 유틸리티 라이브러리는 NuGet통해 사용할 수 있지만 오픈 소스 대안도 많이 있습니다. D3DCSX DirectCompute 유틸리티 라이브러리 및 재배포 가능 DLL은 Windows SDK에서 사용할 수 있습니다. D3DX12는 GitHub사용할 수 있습니다. |
HLSL 컴파일러(FXC.EXE) |
HLSL 컴파일러는 Windows SDK의 bin 폴더 아래에 있는 적절한 아키텍처 하위 디렉터리의 도구입니다. 참고: D3DCompiler API 및 재배포 가능 DLL은 Windows SDK에서 사용할 수 있습니다. DirectX 12 개발의 경우 Windows SDK에서 DXCompiler를 사용하고 GitHub호스트합니다. |
Windows용 PIX |
Windows용 PIX 도구를 대체하는 기능은 이제 Visual Studio 그래픽 디버거라는 Microsoft Visual Studio의 기능입니다. 이 기능은 유용성, Windows 8 및 Direct3D 11.1에 대한 지원 및 HLSL 디버깅을 위한 호출 스택 및 디버깅 창과 같은 기존 Microsoft Visual Studio 기능과의 통합을 크게 향상시켰습니다. 이 새로운 기능에 대한 자세한 내용은 DirectX 그래픽 디버깅을 참조하세요. DirectX 12 개발의 경우 Windows 최신 세대의 PIX를 참조하세요. |
Windows용 XAudio2 |
XAudio2 API는 이제 Windows 11, Windows 10 및 Windows 8.x의 시스템 구성 요소입니다. XAudio2에 대한 헤더 및 라이브러리는 Windows SDK에서 사용할 수 있습니다. Windows 7 지원은 XAudio2Redist참조하세요. |
Windows용 XInput |
XInput 1.4 API는 이제 Windows 11, Windows 10 및 Windows 8.x의 시스템 구성 요소입니다. XInput에 대한 헤더 및 라이브러리는 Windows SDK에서 사용할 수 있습니다. 참고: 레거시 XInput 9.1.0은 Windows 7 이상의 일부로도 사용할 수 있습니다. |
XNAMATH |
최신 버전의 XNAMATH는 새 명령 집합과 ARM/ARM64를 위한 업데이트를 통해 이제 DirectXMath입니다. DirectXMath에 대한 헤더는 Windows SDK 및 GitHub사용할 수 있습니다. |
DirectX 제어판 및 DirectX 기능 뷰어 |
DirectX 제어판 및 DirectX 기능 뷰어 유틸리티는 Windows SDK의 bin 폴더 아래에 있는 적절한 아키텍처 하위 디렉터리에 포함됩니다. DirectX 기능 뷰어는 GitHub사용할 수도 있습니다. |
XACT |
XACT(Xbox Audio Cross Platform Tool)는 더 이상 Windows에서 사용할 수 없습니다. |
게임 탐색기 및 GDFMAKER |
게임 탐색기 API는 Windows 사용자에게 게임을 제공합니다. 게임 탐색기 API는 Windows Vista 및 Windows 7에서만 지원됩니다. 게임 정의 파일 메이커 도구(GDFMAKER.EXE)를 사용하여 Windows 스토어 앱에 대한 게임 등급을 선언합니다. 게임 정의 파일 작성기 도구(GDFMaker.exe)는 Windows SDK의 bin 폴더 아래에 있는 x86 하위 디렉터리에 포함되며 Windows 스토어 앱과 Win32 데스크톱 응용 프로그램을 모두 지원합니다. |
다른 DirectX SDK 도구 |
dxtex.exe, meshconvert.exe, texconv.exe및 uvatlas.exe 같은 기타 도구는 온라인에서 찾을 수 있습니다. 이러한 도구에 대한 자세한 내용은 DirectX SDK 도구 카탈로그 참조하세요. |
샘플 |
Windows의 DirectX 12 기술을 강조 표시하는 샘플 애플리케이션은 DirectX 샘플 리포지토리에서 찾을 수 있습니다. 이전 버전의 Direct3D에 대한 대부분의 샘플은 온라인에서도 사용할 수 있습니다. 이러한 샘플에 대한 자세한 내용은 DirectX SDK 샘플 카탈로그 참조하세요. |
Managed DirectX 1.1 |
.NET DirectX 어셈블리는 더 이상 사용되지 않으며 새 애플리케이션에서 사용하지 않는 것이 좋습니다. 사용할 수 있는 여러 가지 대안이 있습니다. DirectX 및 .NET을 참조하세요. |
레거시 DirectX SDK는 필요한 경우 Microsoft 다운로드 센터 다운로드할 수 있지만 새 프로젝트에는 사용하지 않는 것이 좋습니다.
메모
특정 버전의 Visual C++ 2010 재배포 가능 패키지가 이미 설치된 경우 DirectX SDK가 설치되지 않습니다. 이 문제를 해결하는 방법에 대한 자세한 내용과 해결 방법은 DirectX SDK(2010년 6월) 설치할 때"S1023" 오류를 참조하세요.
Visual Studio에서 DirectX SDK 프로젝트 사용
2010년 6월 DirectX SDK의 샘플은 Windows 7 및 Windows 8 이상 릴리스에서 프리미엄 Visual Studio SKU(Microsoft Visual Studio Professional 2012, Microsoft Visual Studio Ultimate 2012, Microsoft Visual Studio Professional 2013 또는 Microsoft Visual Studio Ultimate 2013)에서 지원됩니다. DirectX 헤더 및 라이브러리를 Windows SDK로 전환하기 때문에 Windows 8 SDK 이상을 프리미엄 Visual Studio SKU로 패키지하는 방법을 사용하여 이러한 샘플을 올바르게 빌드하려면 프로젝트 설정 변경이 필요합니다.
이러한 단계는 DirectX SDK에 종속된 사용자 고유의 프로젝트에도 적용됩니다.
DirectX SDK의 2010년 6월 릴리스가 개발 컴퓨터에 설치되어 있는지 확인합니다. Windows 8 이상을 실행하는 컴퓨터에 설치하는 경우 DirectX SDK에 필수 구성 요소로 .NET 3.5를 사용하도록 설정하라는 메시지가 표시되고 필요합니다.
메모
특정 버전의 Visual C++ 2010 재배포 가능 패키지가 이미 설치된 경우 DirectX SDK가 설치되지 않습니다. 이 문제를 해결하는 방법에 대한 자세한 내용과 해결 방법은 DirectX SDK(2010년 6월) 설치할 때"S1023" 오류를 참조하세요.
프리미엄 Visual Studio SKU 중 하나를 사용하고 있는지 확인합니다. Windows 8용 Microsoft Visual Studio Express 2012 또는 Windows용 Microsoft Visual Studio Express 2013은 DirectX SDK 샘플과 같은 Windows 8 이상 데스크톱 애플리케이션을 빌드하지 않습니다. 프리미엄 Visual Studio SKU 중 하나를 설치하려면 Visual Studio에서 다운로드하고 지침을 따릅니다.
DirectX SDK 샘플 브라우저를 사용하여 원하는 샘플에 대한 프로젝트 파일을 설치합니다. 샘플의 Microsoft Visual Studio 2010 호환 솔루션 파일(_2010접미사)을 엽니다.
Microsoft Visual Studio 2012 또는 Microsoft Visual Studio 2013만 설치된 시스템에서 샘플을 여는 경우 다음과 같은 메시지가 표시됩니다. "이 솔루션에는 이전 버전의 VC++ 컴파일러 및 라이브러리를 사용하는 하나 이상의 프로젝트가 포함되어 있습니다. VC++ 컴파일러 및 라이브러리(v110)를 사용하도록 각 프로젝트를 업데이트할 수 있습니다." 프로젝트를 열기 전에 업데이트할 이 대화 상자에서 업데이트 옵션을 선택합니다.
그렇지 않은 경우 솔루션을 마우스 오른쪽 단추로 클릭하고 VC++ 프로젝트 업데이트선택하여 로드한 후 Visual Studio 2012 또는 Visual Studio 2013 C++ 11 컴파일러 및 라이브러리로 업데이트할 수 있습니다.
D3DX는 Windows 8 이상에서 Direct3D를 사용하기 위한 정식 API로 간주되지 않으므로 해당 Windows SDK에 포함되지 않습니다. Direct3D API를 사용하기 위한 대체 솔루션을 조사합니다. Windows 7(및 이전) DirectX SDK 샘플과 같은 레거시 프로젝트의 경우 DirectX SDK를 사용하여 D3DX로 애플리케이션을 빌드하려면 다음 단계가 필요합니다.
프로젝트의 VC++ 디렉터리를 다음과 같이 수정하여 SDK 헤더 및 라이브러리에 올바른 순서를 사용합니다.
- 아이. 프로젝트에 대한 **속성**을 열고 **VC++ 디렉터리** 페이지를 선택합니다.
ii. **모든 구성 및 모든 플랫폼**을 선택합니다.
iii. 다음과 같이 이러한 디렉터리를 설정합니다.
- 부모 또는 프로젝트 기본값>에서 상속하는 실행 가능한 디렉터리:<(오른쪽 드롭다운)
- 디렉터리 포함: $(IncludePath);$(DXSDK_DIR)include
- 라이브러리 디렉터리 포함: $(LibraryPath);$(DXSDK_DIR)Lib\x86
- 라이브러리 디렉터리: $(LibraryPath);$(DXSDK_DIR)Lib\x64
iv. 클릭적용합니다.
v. x64 플랫폼을 선택합니다.
vi. 다음과 같이 라이브러리 디렉터리 설정합니다."d3dx9.h", "d3dx10.h" 또는 "d3dx11.h"가 프로젝트에 포함될 때는 최신 버전을 가져오기 위해 먼저 "d3d9.h", "d3d10.h" 및 "dxgi.h" 또는 "d3d11.h" 및 "dxgi.h"를 명시적으로 추가하세요. 필요한 경우 경고 C4005 사용하지 않도록 설정할 수 있습니다. 그러나 이 경고는 이러한 헤더의 이전 버전을 사용하고 있음을 나타냅니다.
프로젝트에서 DXGIType.h에 대한 모든 참조를 제거합니다. 이 헤더는 Windows SDK에 존재하지 않으며 DirectX SDK 버전이 새 winerror.h와 충돌합니다.
모든 D3DX DLL은 DirectX SDK 설치를 통해 개발 컴퓨터에 설치됩니다. 필요한 D3DX 종속성이 다른 컴퓨터로 이동하는 경우 샘플 또는 애플리케이션과 함께 재배포되는지 확인합니다.
D3DX11의 현재 사용에 대한 대체 기술에는 DirectXTex, DirectXTK, DirectXMesh및 UVAtlas포함됩니다. D3DXMath는 DirectXMath대체됩니다.
다음 조건을 관찰하여 새 버전의 HLSL 셰이더 컴파일러를 사용하고 있는지 확인합니다.
5단계에 따라 실행 파일 디렉터리를 변경하면 프로젝트 빌드에서 Windows SDK 설치의 FXC를 사용합니다. 이제 HLSL 파일이 Visual Studio에서 공식적으로 인식됩니다. 프로젝트 파일로 추가하고 프로젝트 시스템을 통해 컴파일러 옵션을 설정할 수 있습니다.
레거시 D3DX DLL을 통해 런타임 컴파일을 호출하면 잘못된 이전 버전의 HLSL 컴파일러가 사용합니다. 코드의 D3DXCompile*, D3DX10Compile*, D3DX11Compile* API에 대한 모든 참조를 D3DCOMPILER_46.DLL 또는 D3DCOMPILER_47.DLL D3DCompile 함수로 바꿉니다.
런타임 셰이더 컴파일을 사용하는 모든 프로젝트에는 프로젝트의 로컬 실행 경로에 복사된 D3DCOMPILER_xx.DLL 있어야 합니다. 이 DLL은 Windows SDK 설치 하위 디렉터리의 %ProgramFiles(x86)%\Windows Kits\8.0\Redist\D3D\<arch> 또는 %ProgramFiles(x86)%\Windows Kits\8.1\Redist\D3D\<arch>에 있습니다. 이 경우 <arch>는 x86 및 x64입니다.
Windows SDK의 D3DCOMPILER_46.DLL 또는 D3DCOMPILER_47.DLL 시스템 구성 요소가 아니며 Windows 시스템 디렉터리에 복사해서는 안 됩니다. 애플리케이션을 병렬 DLL로 사용하여 이 DLL을 다른 컴퓨터에 재배포할 수 있습니다.
XInput API를 사용하고 Windows 7 또는 이전 버전의 Windows에서 실행하려는 모든 프로젝트는 레거시 버전(9.1.0)을 사용해야 하거나 DirectX SDK에서 이 구성 요소에 대한 헤더 및 라이브러리를 명시적으로 포함해야 합니다. XInput 헤더 및 XINPUT.LIB는 Windows SDK에 포함되어 있으며, Windows 8 이상에 포함된 1.4 버전만을 대상으로 합니다. 동일한 헤더를 XINPUT9_1_0.LIB와 함께 사용하여 이전 버전의 Windows에 포함된 레거시 버전을 사용할 수 있습니다. 레거시 버전의 XInput은 전체 기능을 검색하거나 컨트롤러 통합 오디오를 지원하지 않으므로 이러한 기능에 대한 지원이 필요한 경우 DirectX SDK 버전(1.3)을 사용해야 합니다.
전체 기능을 갖춘 하위 수준 XInput API를 사용하려면 DirectX SDK에서 직접 특정 XInput 헤더를
#include
합니다.#include <%DXSDK_DIR%Include\xinput.h>
... 추가 종속성에 대한 링커 옵션에서 DirectX SDK XInput 라이브러리에 직접 연결합니다.
%DXSDK_DIR%Include\<arch>\xinput.lib
XINPUT1_3.DLL 이진 파일은 개발 컴퓨터에 DirectX SDK를 설치하여 Windows 시스템 디렉터리에 설치됩니다. DirectX SDK에서 DirectX 설치 프로그램을 사용하여 이 이진 파일을 애플리케이션에 재배포해야 합니다.
XAudio2 API를 사용하고 Windows 7 또는 이전 버전의 Windows에서 실행하려는 모든 프로젝트는 이전 버전(9.1.0)을 사용하거나 DirectX SDK에서 이 구성 요소에 대한 헤더 및 라이브러리를 명시적으로 포함해야 합니다. Windows SDK에 포함된 XAudio2 헤더 및 라이브러리는 Windows 8의 일부로 포함된 버전(2.8)만 대상으로 합니다.
예를 들어 XAudio2를 사용하면 DirectX SDK에서 직접 특정 XAudio2 헤더를
#include
합니다.#include <%DXSDK_DIR%Include\xaudio2.h>
... 추가 종속성에 대한 링커 옵션에서 DirectX SDK XAudio2 라이브러리에 직접 연결합니다.
%DXSDK_DIR%Include\<arch>\xaudio2.lib
XAUDIO2_7.DLL 이진 파일은 개발 컴퓨터에 DirectX SDK를 설치하여 Windows 시스템 디렉터리에 설치됩니다. DirectX SDK에서 DirectX 설치 프로그램을 사용하여 이러한 라이브러리를 애플리케이션과 재배포해야 합니다.
이전 버전의 Visual Studio에서 DirectX SDK를 사용한 경우 Visual Studio 2010 업그레이드에서 DirectX SDK 경로를 기본 프로젝트 설정으로 마이그레이션했을 수 있습니다. 향후 빌드 오류를 방지하려면 이러한 설정을 제거하는 것이 좋습니다. %USERPROFILE%\AppData\Local\Microsoft\MSBuild\v4.0 디렉터리에서 Microsoft.Cpp.Win32.user 수정하고 Microsoft.Cpp.x64.user 파일을 DXSDK_DIR 경로에 대한 모든 참조를 제거합니다. 또는 <ExecutablePath> 같은 경로 항목이 포함된 전체 <PropertyGroup> 노드를 제거하고 IncludePath><표준 기본값으로 되돌릴 수 있습니다. 이러한 파일에 DXSDK_DIR 대한 참조가 표시되지 않으면 변경이 필요하지 않습니다.
결과 앱이 Windows 7 및 Windows 8 이상뿐만 아니라 SP2(서비스 팩 2)가 포함된 Windows Vista를 지원하는 경우 _WIN32_WINNT 전처리기 정의를 0x600 설정합니다. Windows 7 및 Windows 8 이상만 지원하는 경우 0x601 설정합니다.
예를 들어:
- 프로젝트에 대한 속성 열고 C/C++>전처리기선택합니다.
- 모든 구성 및 모든 플랫폼을 선택하십시오.
- 전처리기 정의 섹션으로 이동하여 _WIN32_WINNT=0x600 설정합니다.
- 클릭적용합니다.
관련 항목
-
Windows용 게임 및 DirectX SDK
-
D3DX 없이 사는 생활