비주얼 스튜디오에서 윈도우 어플리케이션으로 프로젝트 생성
프로그램은 wWinMain 함수를 메인으로하여 돌아간다.
// Main message loop:
while (GetMessage(&msg, nullptr, 0, 0))
{
if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
프로그램이 꺼지지 않고 해당 함수를 계속하여 반복
GetMessage 함수는 블락킹 함수로 키보드나 마우스 같은 이벤트가 발생하지 않으면
해당 함수에 멈춰있음
=>
PeekMessage 함수로 이벤트 유무를 판단 후 진행하도록 수정해야 함
PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)
msg: 받아올 이벤트 메세지 값
nullptr: 이벤트를 받을 윈도우 핸들
0,0: 이벤트 min, max 값, 0일 시 모든 이벤트
PM_REMOVE: Peek 후 큐에서 메세지를 지움
반환 값이 true 시 이벤트가 있는 것이며, false 시 이벤트가 없는 것임
precompiled header
미리 사용할 헤더들을 하나의 파일에서 컴파일 해두어 빌드 및 사용 시에 이점이 있음
보통 pch.h나 stdafx.h 파일로 볼 수 있음
비주얼 스튜디오에서 솔루션을 우클릭하여 Properties에 들어간 후
C++ -> Precompiled headers -> Precompiled header를 Use로 수정
Precompiled header file을 외워두고 해당 파일명으로 클래스를 생성
Precompiled header file.cpp 파일은 우클릭 하여 Properties에 들어간 후
C++ -> Precompiled headers -> Precompiled header를 Create로 수정
lpszMenuName = nullptr;
프로그램 실행 창의 메뉴바를 없애줌
게임 엔진은 별도의 프로젝트로 관리
게임 개발 시 공통적인 기능을 하나의 라이브러리로 관리하여 재사용을 용이하게 할수 있음
솔루션을 오른쪽 클릭하여 프로젝트 추가 -> Static library
d3dx12.h 헤더는 비공식적?으로 지원하기 때문에 인터넷에서 찾아서 다운 가능
비주얼 스튜디오 빌드를 위하여
클라이언트 프로젝트 설정에서는 엔진들의 헤더와 라이브러리 폴더를 추가
#pragma comment(lib, "Engine")
비주얼 스튜디오 링커 설정에서 라이브러리 파일을 추가하는 것이 아닌 코드 상에서 추가