수업시간에 강사님과 같이 진행했지만,
이해하고 구현했다기보다, 그냥 흘러가는 대로 코드를 쳤다...라는 것에 가까웠다.
UnrealEngine 기능을 참고하여 기능을 구현하였기 때문에,
일부분에 불과하지만 엔진은 이렇게 동작하는구나!를 조금은 알게 된 수업이었다.
이후 Console Game project를 진행하며,
사용하고 싶은 함수들을 파고 들어가고, 이해가 잘 안 가는 부분은 msdn에 검색하며 공부하니 재미있었다!
이에 프로젝트에도 단순히 강사님 엔진을 그대로 사용하는 것이 아니라,
필요에 의해 이해하고 공부하며 구현하고싶어 진행하게 되었다. Linux API도 공부하여 사용하고 싶다.
- 개인적인 공부 성향이 파고들고 분해하면서 직접 구현해야 한다.
0. 속성 설정하기
1) 구성 형식: 동적 라이브러리로 설정
2) 추가 포함 디렉터리 매크로
$(ProjectDir)\ 를 추가하면 아래 평가 값에 보이는 것처럼 프로젝트 경로가 추가된다.
이 때, 구성 속성에 C/C++탭이 안 보인다면 아직 .cpp 파일을 생성하지 않아서이다.
3) winmm.lib, $(CoreLibraryDependencies) 추가하기
winmm 라이브러리는, 윈도우 명령어 집합이라고 한다.
윈도우 표준 라이브러리들을 $(CoreLibraryDependencies)로 추가한다.
속성 페이지 - 구성 속성 - 링커 - 입력에서 추가 종속성에 해당 라이브러리를 추가한다.
4) 빌드 이벤트 추가 - 빌드 전 이벤트
엔진 빌드 시, 실제 게임 실행 프로젝트가 포함해야 할 헤더파일들을 복사해 주는 빌드 이벤트를 추가한다.
사용할 헤더파일이 다른 프로젝트의 라이브러리인지 구분하기 위하여 관습적으로 Inc, Include, Internal,
외부 라이브러리는 ThirdParty 폴더로 구분해준다고 한다.
필수 항목은 아니지만, 계속 엔진을 수정할 때마다 직접 복사하기보다, 명령어를 통해 자동화하는 것이 효율적이다.
xcopy $(ProjectDir)\*.h $(SolutionDir)\Inc\ /e /y
해석하면,
xcopy $(ProjectDir)\*.h $(SolutionDir)\Includes\ :
복사해라, 프로젝트 경로의 헤더파일들을 솔루션 경로의 Includes 폴더에,
/e : 하위 디렉터리가 비어있어도 복사해라.
/y : 파일이 존재해도 덮어써라. (쓰지 않으면 매번 물어봄)
xcopy
https://learn.microsoft.com/ko-kr/windows-server/administration/windows-commands/xcopy
xcopy
하위 디렉터리를 포함하여 파일 및 디렉터리를 복사하는 xcopy에 대한 참조 문서입니다.
learn.microsoft.com
4) 빌드 이벤트 추가 - 빌드 후 이벤트
xcopy $(OutDir)\*.dll $(SolutionDir)\Lib\ /e /y
빌드 후에 나온 .dll 동적 라이브러리를 솔루션의 Lib 폴더에 복사한다.
xcopy $(OutDir)\*.lib $(SolutionDir)\Lib\ /e /y
빌드 후에 나온 .lib 정적 라이브러리를 솔루션의 Lib 폴더에 복사한다.
여기서의 .lib파일은 정적 라이브러리는 맞지만,
.dll파일의 사전 정보가 들어있는 파일이다. (동적 라이브러리의 지도 역할)
링커가 정적 라이브러리만 확인하기 때문에 필요.
빌드 후 확인하면, 출력으로 확인할 수 있다.
현재 main.cpp만 존재하여 실제로는 빈 폴더와 .dll 파일만 복사되었다.
다음 폴더가 만들어졌다.
다음 글!
[C++/Console Engine] WinAPI로 커스텀 콘솔 엔진 구현하기(2) PreCompiledHeader, DLL 헤더파일 추가와 매크로
1. PreCompiledHeader 프로젝트의 컴파일 시간을 단축하기 위하여 미리 컴파일된 헤더파일을 사용한다. 수정이 거의 없어 안정적이며 사용 빈도가 높은 헤더파일을 포함시킨다. https://learn.microsoft.
narmhye.tistory.com
'C++ > 공부' 카테고리의 다른 글
[C++/Console Engine] WinAPI로 커스텀 콘솔 엔진 구현하기(3) Key 입력 정의 가져오기, 메모리 누수 검사 기능 추가 (0) | 2025.01.17 |
---|---|
[C++/Console Engine] WinAPI로 커스텀 콘솔 엔진 구현하기(2) PreCompiledHeader, DLL 헤더파일 추가와 매크로 (0) | 2025.01.17 |
[C++] '::' Scpe operator 스코프 범위 지정 연산자 (0) | 2024.09.03 |
[C++] Reference(참조자), 데이터 동적 할당 new 개념 공부 (0) | 2024.08.16 |
[C++] C에서 C++으로, 이것이 C++이다 (0) | 2023.11.21 |