포스트

DirecX12 | Lecture 4, 프로젝트 설정 (인프런)

DirectX12 강의 4. 프로젝트 설정을 정리한 글입니다.

DirecX12 | Lecture 4, 프로젝트 설정 (인프런)

강의 정보 🎓


1. 프로젝트 구조 설정

  • Client 프로젝트:
    • Windows 데스크톱 애플리케이션으로 생성
    • Win32 윈도우 메시지 루프를 PeekMessage 기반으로 수정
  • Engine 프로젝트:
    • 정적 라이브러리(Static Library)로 생성
    • 출력 디렉토리: $(SolutionDir)Output\

2. 미리 컴파일된 헤더 (PCH) 설정

  • Client
    • pch.h, pch.cpp 생성
    • 프로젝트 설정 > 미리 컴파일된 헤더 사용 설정
    • Game 클래스 생성 후 메인 루프에 추가
  • Engine
    • pch.h (Engine) 내부에 #include "EnginePch.h" 추가
    • EnginePch.h에는 Engine에서 사용할 공통 헤더, 라이브러리 포함 설정
    • DirectX 관련 헤더 (예: d3dx12.h)는 별도 폴더에 복사 및 포함 설정 필요
    • HelloEngine 클래스 (빈 클래스) 작성 → Client에서 참조 테스트용

3. 헤더 및 라이브러리 설정

  • Client 프로젝트
    • pch.h#include "EnginePch.h" 추가
    • Game::Init() 함수에서 HelloEngine(); 호출하여 연결 확인
    • VC++ 디렉터리 설정:
      • 포함 디렉토리: $(SolutionDir)Engine\
      • 라이브러리 디렉토리: $(SolutionDir)Output
    • 링커 > 입력 > 추가 종속성:
      • #pragma comment(lib, "Engine.lib") 방식 사용

참고

  • d3dx12.h는 기본 SDK에 포함되어 있지 않으므로, 별도 폴더에 복사 후 포함 설정 필요
  • 모듈 간의 의존성은 반드시 Output 폴더 경유로 연결해야 함

요약 및 느낀점 📝

  • 프로젝트는 Client, Engine으로 나누며 Egine의 경우 정적 라이브러리로 사용된다.
  • 출력물들을 관리하기 쉽게 하기 위한 경로 설정을 하였다.

    느낀점 💡 DX12에 대해서는 이미 1년 넘게 배웠지만 까먹었던 내용을 다시 떠올리기 위해서 강의를 듣기 시작했다. 일단 프로젝트를 나누고 라이브러리를 만드는 이러한 방식에 대해서 처음 접근하였는데 좋은 구조를 위해서는 이러한 방식도 고려해야 할 수 있겠다고 생각이 들었다. 앞으로로 완강까지 강의 내용을 잘 정리하고 나만의 방식으로 리펙토링하는 과정을 거져볼 예정이다.

프로젝트 상태 💾

왼쪽 이미지
< 현재 솔루션 탐색기 상태 >
오른쪽 이미지
< 현재 프로젝트 윈도우 탐색기 상태 >
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.