# DirectX SDK 다운로드 및 설치 가이드 ## 📦 필요한 SDK 목록 이 프로젝트는 다음 DirectX SDK가 필요합니다: - **DirectX 9 SDK** (dx9 브랜치용) - **DirectX 12** (dx12 브랜치용 - Windows SDK에 포함) --- ## 1. DirectX 9 SDK (dx9 브랜치) ### 📥 다운로드 #### 공식 Microsoft 다운로드 **DirectX SDK (June 2010)** - 마지막 독립 실행형 DirectX SDK **다운로드 링크**: - 🔗 **공식**: https://www.microsoft.com/en-us/download/details.aspx?id=6812 - 📦 **파일명**: `DXSDK_Jun10.exe` - 💾 **크기**: 약 572 MB #### 대체 다운로드 소스 만약 위 링크가 작동하지 않는 경우: 1. **Internet Archive (Wayback Machine)** - https://archive.org/search.php?query=DirectX%20SDK%20June%202010 2. **Softpedia** - https://www.softpedia.com/get/Programming/SDK-DDK/Microsoft-DirectX-SDK.shtml 3. **국내 미러 사이트** (비공식) - 주의: 공식 소스 사용 권장 ### 🔧 설치 방법 1. **설치 파일 실행** ``` DXSDK_Jun10.exe ``` 2. **기본 설치 경로** ``` C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ ``` 3. **설치 후 디렉토리 구조** ``` Microsoft DirectX SDK (June 2010)/ ├── Include/ ← 헤더 파일 (d3d9.h, d3dx9.h 등) ├── Lib/ │ ├── x86/ ← 32비트 라이브러리 │ └── x64/ ← 64비트 라이브러리 ├── Utilities/ └── Documentation/ ``` ### ⚠️ 알려진 설치 문제 #### Error S1023 해결방법 DirectX SDK June 2010 설치 시 `S1023` 에러가 발생하는 경우: **원인**: Visual C++ 2010 재배포 패키지 충돌 **해결 방법**: 1. **제어판** → **프로그램 제거** 2. 다음 항목 제거: - Microsoft Visual C++ 2010 x86 Redistributable - Microsoft Visual C++ 2010 x64 Redistributable 3. DirectX SDK 재설치 4. Visual C++ 2010 재설치 (필요시) **PowerShell로 자동 해결** (관리자 권한): ```powershell # VC++ 2010 제거 wmic product where "name like 'Microsoft Visual C++ 2010%'" call uninstall # DirectX SDK 설치 Start-Process "DXSDK_Jun10.exe" -Wait # VC++ 2010 재설치 # https://www.microsoft.com/en-us/download/details.aspx?id=26999 ``` ### 🛠️ Visual Studio 프로젝트 설정 #### 방법 1: 환경 변수 설정 (권장) **시스템 환경 변수 추가**: ``` DXSDK_DIR = C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ ``` **프로젝트 설정**: ```xml $(DXSDK_DIR)Include;%(AdditionalIncludeDirectories) $(DXSDK_DIR)Lib\x86;%(AdditionalLibraryDirectories) ``` #### 방법 2: 직접 경로 지정 **Visual Studio에서**: 1. 프로젝트 속성 → C/C++ → 일반 → 추가 포함 디렉터리 ``` C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include ``` 2. 링커 → 일반 → 추가 라이브러리 디렉터리 ``` C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86 ``` 3. 링커 → 입력 → 추가 종속성 ``` d3d9.lib d3dx9.lib dxerr.lib dxguid.lib ``` ### 📚 포함된 주요 파일 **헤더 파일**: - `d3d9.h` - Direct3D 9 코어 - `d3dx9.h` - D3DX 유틸리티 함수 - `d3dx9math.h` - 수학 함수 - `d3dx9tex.h` - 텍스처 함수 - `d3dx9core.h` - 코어 유틸리티 **라이브러리**: - `d3d9.lib` - Direct3D 9 런타임 - `d3dx9.lib` - D3DX 유틸리티 (Release) - `d3dx9d.lib` - D3DX 유틸리티 (Debug) - `dxerr.lib` - 에러 메시지 헬퍼 - `dxguid.lib` - GUID 정의 **DLL (재배포 필요)**: - `d3d9.dll` - 시스템에 기본 포함 - `d3dx9_43.dll` - 별도 배포 필요 (June 2010 버전) --- ## 2. DirectX 12 (dx12 브랜치) ### 📥 다운로드 DirectX 12는 **Windows 10 SDK**에 포함되어 있습니다. 별도 SDK 불필요! #### Windows 10/11 SDK 다운로드 **최신 버전**: - 🔗 **공식**: https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/ - 📦 **온라인 설치**: `winsdksetup.exe` - 📦 **오프라인 ISO**: 사용 가능 (약 1-2 GB) **권장 버전**: - **최소**: Windows 10 SDK (10.0.17763.0) - Version 1809 - **권장**: Windows 11 SDK (10.0.22621.0) - 최신 - **DX12 Ultimate**: Windows 10 SDK (10.0.19041.0) - Version 2004+ #### 특정 버전 다운로드 **SDK Archive**: - https://developer.microsoft.com/en-us/windows/downloads/sdk-archive/ **다운로드 예시**: ``` Windows 10 SDK (10.0.19041.0) ← 2020년 5월, DX12 Ultimate 지원 Windows 10 SDK (10.0.22000.0) ← Windows 11 SDK Windows 11 SDK (10.0.22621.0) ← 최신 ``` ### 🔧 설치 방법 1. **설치 파일 실행** ``` winsdksetup.exe ``` 2. **설치 옵션 선택** 필수 구성 요소만 선택하여 설치 시간 단축: ``` ✅ Windows SDK Signing Tools for Desktop Apps ✅ Windows SDK for UWP C++ Apps ✅ Windows SDK for Desktop C++ x86 Apps ✅ Windows SDK for Desktop C++ x64 Apps ✅ Debugging Tools for Windows ❌ .NET Framework (불필요) ❌ Windows Performance Toolkit (선택) ❌ MSI Tools (불필요) ``` 3. **기본 설치 경로** ``` C:\Program Files (x86)\Windows Kits\10\ ``` 4. **설치 후 디렉토리 구조** ``` Windows Kits\10\ ├── Include\ │ └── 10.0.xxxxx.0\ │ ├── um\ ← d3d12.h, dxgi1_6.h │ └── shared\ ← 공유 헤더 ├── Lib\ │ └── 10.0.xxxxx.0\ │ ├── um\x86\ ← 32비트 라이브러리 │ └── um\x64\ ← 64비트 라이브러리 └── Redist\ └── D3D\ ← 재배포 DLL ``` ### 🛠️ Visual Studio 프로젝트 설정 #### Windows SDK는 Visual Studio 2019/2022에 자동 통합됩니다! **프로젝트 설정 확인**: 1. 프로젝트 속성 → 일반 ``` Windows SDK 버전: 10.0 (최신 설치된 버전) ``` 2. 플랫폼 도구 집합 ``` Visual Studio 2019 (v142) 또는 Visual Studio 2022 (v143) ``` #### 수동 설정 (필요시) **vcxproj 파일**: ```xml 10.0.19041.0 d3d12.lib; dxgi.lib; dxguid.lib; d3dcompiler.lib; %(AdditionalDependencies) ``` ### 📚 포함된 주요 파일 **헤더 파일**: - `d3d12.h` - Direct3D 12 코어 - `dxgi1_6.h` - DXGI 1.6 (스왑체인, 어댑터) - `d3d12sdklayers.h` - 디버그 레이어 - `d3dcompiler.h` - 셰이더 컴파일러 - `DirectXMath.h` - 수학 라이브러리 **라이브러리**: - `d3d12.lib` - Direct3D 12 런타임 - `dxgi.lib` - DXGI - `d3dcompiler.lib` - 셰이더 컴파일러 - `dxguid.lib` - GUID 정의 **DLL (시스템 포함)**: - `d3d12.dll` - Windows 10에 기본 포함 - `dxgi.dll` - Windows 10에 기본 포함 ### 🔨 추가 도구 #### d3dx12.h (헬퍼 헤더) DX12는 `d3dx12.h`를 별도 제공하지 않습니다. Microsoft 샘플에서 가져와야 합니다. **다운로드**: ``` https://github.com/microsoft/DirectX-Graphics-Samples/blob/master/Libraries/D3DX12/d3dx12.h ``` **또는 프로젝트에 직접 추가**: ```cpp // d3dx12.h - Helper structures and functions // 프로젝트 Include 폴더에 복사 ``` **사용 예시**: ```cpp #include #include "d3dx12.h" // 헬퍼 함수 CD3DX12_HEAP_PROPERTIES heapProps(D3D12_HEAP_TYPE_DEFAULT); CD3DX12_RESOURCE_DESC texDesc = CD3DX12_RESOURCE_DESC::Tex2D(...); ``` #### DirectX Shader Compiler (DXC) HLSL 6.0+ 셰이더 컴파일용 (선택사항, 고급 기능) **다운로드**: - 🔗 https://github.com/microsoft/DirectXShaderCompiler/releases - 📦 `dxc_.zip` **포함 파일**: - `dxc.exe` - 커맨드라인 컴파일러 - `dxcompiler.dll` - 런타임 컴파일러 - `dxil.dll` - DXIL 서명 --- ## 3. 개발 도구 ### PIX for Windows (GPU 디버거) **다운로드**: - 🔗 https://devblogs.microsoft.com/pix/download/ - 📦 Windows Store에서도 다운로드 가능 **기능**: - GPU 타이밍 분석 - 프레임 캡처 - 셰이더 디버깅 - 리소스 상태 추적 ### RenderDoc (대체 디버거) **다운로드**: - 🔗 https://renderdoc.org/builds - 📦 크로스 플랫폼 (Windows, Linux) **기능**: - 프레임 캡처 - 텍스처 뷰어 - 파이프라인 상태 검사 - 무료 오픈소스 ### Visual Studio Graphics Debugger **설치**: - Visual Studio 설치 시 "게임 개발 (C++)" 워크로드 선택 - 자동으로 포함됨 **사용법**: - 디버그 → 그래픽 → 진단 시작 - 프레임 캡처 (Print Screen) --- ## 4. 재배포 패키지 ### DirectX 9 재배포 최종 사용자를 위해 게임과 함께 배포해야 하는 파일: **DirectX End-User Runtime**: - 🔗 https://www.microsoft.com/en-us/download/details.aspx?id=35 - 📦 `directx_Jun2010_redist.exe` **포함 내용**: - `d3dx9_43.dll` - `D3DCompiler_43.dll` - `XAudio2_7.dll` - 기타 D3DX 컴포넌트 **설치 방법**: ```batch REM 게임 설치 스크립트 directx_redist\DXSETUP.exe /silent ``` ### DirectX 12 재배포 DirectX 12는 **Windows 10에 기본 포함**되므로 별도 재배포 불필요! **최소 OS 요구사항**: - Windows 10 (1809 이상) 또는 - Windows 11 **확인 방법**: ```cpp // 런타임에 DX12 지원 확인 if (FAILED(D3D12CreateDevice(nullptr, D3D_FEATURE_LEVEL_11_0, __uuidof(ID3D12Device), nullptr))) { MessageBox(NULL, L"DirectX 12를 지원하지 않는 시스템입니다.", L"에러", MB_OK); return false; } ``` --- ## 5. 빠른 설정 체크리스트 ### ✅ DX9 브랜치 (dx9) - [ ] DirectX SDK June 2010 다운로드 - [ ] SDK 설치 (S1023 에러 해결) - [ ] 환경 변수 `DXSDK_DIR` 설정 - [ ] Visual Studio 재시작 - [ ] 프로젝트 Include/Lib 경로 확인 - [ ] 빌드 테스트 - [ ] `d3dx9_43.dll` 실행 경로에 복사 ### ✅ DX12 브랜치 (dx12) - [ ] Windows 10 SDK 다운로드 (최신) - [ ] SDK 설치 (C++/Desktop 옵션) - [ ] Visual Studio 재시작 - [ ] Windows SDK 버전 확인 - [ ] d3dx12.h 다운로드 및 추가 - [ ] 빌드 테스트 - [ ] PIX for Windows 설치 (디버깅용) --- ## 6. 자주 묻는 질문 (FAQ) ### Q1: DirectX SDK를 어디에 설치해야 하나요? **A**: 기본 경로 사용 권장: ``` C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ C:\Program Files (x86)\Windows Kits\10\ ``` ### Q2: 여러 버전의 SDK를 동시에 설치할 수 있나요? **A**: 가능합니다! DX9 SDK와 Windows SDK (DX12)는 충돌하지 않습니다. ### Q3: Visual Studio 2022에서 DX9 SDK를 사용할 수 있나요? **A**: 가능합니다. 단, 경로 충돌 방지를 위해: ``` Include 경로 순서: 1. $(DXSDK_DIR)Include 2. $(WindowsSDK_IncludePath) ``` ### Q4: 64비트 빌드 시 라이브러리 경로는? **DX9**: ``` $(DXSDK_DIR)Lib\x64 ``` **DX12**: ``` C:\Program Files (x86)\Windows Kits\10\Lib\10.0.xxxxx.0\um\x64\ ``` ### Q5: `d3dx9_43.dll`이 없다는 오류가 발생합니다. **A**: DirectX 재배포 패키지 설치 또는 DLL을 실행 파일과 같은 폴더에 복사: ``` Game.exe d3dx9_43.dll D3DCompiler_43.dll ``` ### Q6: Windows 7에서 DX12를 사용할 수 있나요? **A**: 불가능합니다. DX12는 Windows 10 이상 전용입니다. ### Q7: 오프라인 환경에서 설치하려면? **DX9**: 전체 SDK 설치 파일 (572 MB) 다운로드 **DX12**: Windows SDK ISO 이미지 다운로드 --- ## 7. 추가 리소스 ### 공식 문서 **DirectX 9**: - 📖 https://docs.microsoft.com/en-us/windows/win32/direct3d9/dx9-graphics - 📖 MSDN DirectX 9 Reference (SDK 내 포함) **DirectX 12**: - 📖 https://docs.microsoft.com/en-us/windows/win32/direct3d12/directx-12-programming-guide - 📖 https://github.com/microsoft/DirectX-Graphics-Samples ### 튜토리얼 **DX9**: - http://www.directxtutorial.com/ - http://rastertek.com/tutdx9.html **DX12**: - https://www.3dgep.com/learning-directx-12-1/ - https://alain.xyz/blog/raw-directx12 ### 커뮤니티 - **GameDev.net**: https://www.gamedev.net/forums/ - **Discord**: DirectX Community Server - **Stack Overflow**: [directx] 태그 --- ## 8. 문제 해결 ### 빌드 오류: "d3d9.h를 찾을 수 없습니다" **해결**: 1. SDK 설치 확인 2. Include 경로 확인 3. 프로젝트 다시 로드 ### 링크 오류: "d3d9.lib를 열 수 없습니다" **해결**: 1. Lib 경로 확인 (x86 vs x64) 2. 플랫폼 일치 확인 3. 환경 변수 재설정 ### 런타임 오류: "DLL을 로드할 수 없습니다" **해결**: 1. 재배포 패키지 설치 2. DLL을 실행 폴더에 복사 3. System32 확인 (비권장) ### Windows SDK 설치 실패 **해결**: 1. 관리자 권한으로 실행 2. 기존 버전 제거 후 재설치 3. .NET Framework 업데이트 4. 디스크 공간 확인 (10GB 이상) --- ## 📞 도움이 필요하신가요? 이 가이드로 해결되지 않는 문제가 있다면: 1. **GitHub Issues** 생성 2. **프로젝트 문서** 참조: - `DX8_TO_DX9_MIGRATION_PLAN.md` - `DX9_TO_DX12_MIGRATION_PLAN.md` 3. **Microsoft Q&A** 포럼 방문 --- **작성일**: 2025-12-01 **작성자**: Claude AI (Anthropic) **버전**: 1.0 **최종 업데이트**: 2025-12-01 --- ## 📋 요약 | SDK | 다운로드 링크 | 크기 | 플랫폼 | 비고 | |-----|-------------|------|--------|------| | **DX9 SDK** | [June 2010](https://www.microsoft.com/en-us/download/details.aspx?id=6812) | 572 MB | Win XP+ | 독립 설치 | | **DX12 (Windows SDK)** | [최신 SDK](https://developer.microsoft.com/en-us/windows/downloads/windows-sdk/) | 1-2 GB | Win 10+ | VS 통합 | | **DX9 재배포** | [End-User Runtime](https://www.microsoft.com/en-us/download/details.aspx?id=35) | 95 MB | All | 배포 필수 | **핵심 포인트**: - ✅ DX9: 별도 SDK 설치 필요 - ✅ DX12: Windows SDK에 포함 (VS와 자동 통합) - ✅ 둘 다 동시 설치 가능 - ✅ DX9는 재배포 패키지 필요, DX12는 불필요 **이제 개발 준비 완료!** 🚀