Programming/Dev
-
[021] Visual Studio 솔루션을 CMake로 전환Programming/Dev 2025. 10. 22. 22:00
몇 개월 전에 우연히 CMake에 대해 알게되었다.아마 C++ 게임 개발은 대부분 Visual Studio로 할 것이라 생각하지만솔루션은 오직 VS에서만 사용되기에, 좀 더 범용성 있는 CMake로 전환하자고 생각했다. CMake는 운영체제, IDE에 종속되지 않는 C++ 개발 환경을 구성할 수 있도록 해준다.여태 VS의 GUI를 사용하다가 처음 보는 CMake로 하려니 쉽지 않긴 했다. cmake_minimum_required(VERSION 3.30)project(Rewriter)# C++23 표준 사용set(CMAKE_CXX_STANDARD 23)set(CMAKE_CXX_STANDARD_REQUIRED ON)# 출력 파일 경로set(CMAKE_RUNTIME_OUTPUT_DIRECTORY..
-
[020] C++ 루아 스크립트 임베딩Programming/Dev 2025. 10. 13. 22:32
이 내용이 지금 할 단계는 아니지만 어짜피 해야되는 거라고 생각하기에저장용으로 미리 작성해둔다. lua, sol2 라이브러리를 이용해서 진행할 예정이다.또한 아예 저장용으로 하기 위해 다른 프로젝트로 만들 것이다. cmake_minimum_required(VERSION 3.18)project(cpp-lua-binding)set(CMAKE_CXX_STANDARD 23)set(CMAKE_CXX_STANDARD_REQUIRED ON)set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/$)set(SOURCES src/main.cpp src/script_manager.cpp src/script_manager.h src/user.c..
-
[019] 서술자 힙 관리 클래스Programming/Dev 2025. 5. 1. 16:30
원래는 씬 변경 구현을 하려 했으나..일단 이게 더 급하고 중요한 것 같아서 먼저 하게 됐다.그래픽스 코드 구조를 이쁘게 만든 뒤에 인게임 로직 코드를 작성하는게 목표다. DescriptorManager::DescriptorManager() : m_srvHeap{ D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV, 1024, D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE, 0 }, m_rtvHeap{ D3D12_DESCRIPTOR_HEAP_TYPE_RTV, 512, D3D12_DESCRIPTOR_HEAP_FLAG_NONE, 0 }, m_dsvHeap{ D3D12_DESCRIPTOR_HEAP_TYPE_DSV, 512, D3D12_DESC..
-
[018] 회원가입, 로그인 구현Programming/Dev 2025. 2. 27. 22:05
이전 게시글에서 C++에서 데이터베이스와 통신하는 것에 대해서 작성했다.그래서 이번엔 회원가입과 로그인 하는 과정을 구현해보았다. 회원가입부터 보자면 일단 클라이언트에서 아이디, 비밀번호를 입력받는다.아이디의 경우 오른쪽 버튼을 통해 중복 체크도 하도록 했다. // 클라이언트void OnCheckIDButtonClicked(){ std::wstring id; if (auto textBox{ GetControl(L"ID") }) id = textBox->GetText(); Packet packet{ Protocol::Type::Register }; packet.Encode(Protocol::Register::Check, id); LoginServer::Ge..
-
[017] C++ ODBC를 이용한 데이터베이스 연결Programming/Dev 2024. 11. 17. 19:38
예전 글에서 한번 적었던 적은 있었는데더 사용하기 편하게 구조를 수정하고 여러 문제들도 수정했다. auto result{ Database::Query{ Database::Type::Game } .Statement(L"SELECT * FROM [dbo].[account] WHERE [register_date] > ?") .Param(1, Time{ 2024, 11, 1, 0, 0, 0 }) .Execute()};int64_t id{};std::wstring name(16, L'\0');std::wstring password(16, L'\0');Time registerDate{};result.Bind(1, &id) .Bind(2, &name) .Bind(3, &password..