반응형

c++ 18

[C++ STL 시리즈] 1편: STL 개요 및 vector 사용법

C++ STL 시리즈 1편: STL 개요와 vector 사용법 C++ 프로그래밍을 하다 보면 자료구조와 알고리즘을 직접 구현해야 하는 경우가 많습니다.하지만 C++에서는 이미 구현된 표준 라이브러리인 STL(Standard Template Library)을 제공합니다.STL은 효율적이고 안정적인 자료구조와 알고리즘을 제공하여, 개발자가 직접 구현하지 않고도 쉽게 사용할 수 있게 도와줍니다. 1. STL의 구성 요소STL은 크게 컨테이너(Containers), 알고리즘(Algorithms), 반복자(Iterators)로 구성됩니다.컨테이너(Containers): 데이터를 저장하고 관리하는 자료구조입니다. 예: vector, list, deque, set, map알고리즘(Algorithms): 컨테이너에 적..

c++ 2025.09.19

Visual Studio C++ MFC CRect 사용법

Visual Studio C++ MFC에서 CRect 사용법MFC 프로그래밍에서 **사각형(Rectangle)** 영역을 다루어야 할 때 매우 유용한 클래스가 있습니다.바로 CRect 클래스입니다.CRect는 윈도우 좌표 기반의 사각형 정보를 관리하고, 다양한 편의 함수를 제공하여 GUI 프로그래밍을 쉽게 만들어줍니다. CRect란?CRect는 MFC에서 제공하는 사각형 클래스입니다.네 개의 정수 좌표 left, top, right, bottom으로 사각형을 정의하며,크기 계산, 이동, 충돌 검사 등 다양한 기능을 제공합니다. CRect 기본 선언CRect rect(10, 20, 200, 150); // left, top, right, bottom left : 사각형 왼쪽 좌표top : 사각형 위쪽 좌..

c++ 2025.09.18

Visual Studio C++ SendMessage 사용법 정리

Visual Studio C++ SendMessage 사용법 정리Windows 프로그래밍에서 메시지(Message)는 프로그램 동작의 핵심입니다.키보드 입력, 마우스 클릭, 윈도우 이동 등 모든 이벤트가 메시지로 전달됩니다.Win32 API에서 메시지를 다룰 때 자주 쓰이는 함수 중 하나가 SendMessage입니다. SendMessage란?SendMessage는 지정한 윈도우 프로시저(WndProc)에 메시지를 즉시 보내고, 그 결과가 처리될 때까지 기다리는 함수입니다. 즉, SendMessage는 동기적(synchronous)으로 동작하며, 메시지가 처리된 후 리턴 값을 돌려줍니다. 함수 원형LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wPara..

c++ 2025.09.18

Visual Studio C++ PostMessage 사용법 정리

Visual Studio C++에서 PostMessage 사용법 정리Windows 프로그래밍에서 메시지(Message)는 매우 중요한 개념입니다.버튼 클릭, 키보드 입력, 윈도우 이동과 같은 모든 동작이 사실상 메시지로 전달되기 때문입니다.Visual Studio C++ 환경에서 Win32 API를 사용할 때 자주 접하는 함수 중 하나가 바로 PostMessage입니다. PostMessage란?PostMessage는 지정한 윈도우의 메시지 큐에 메시지를 넣어주는 함수입니다.즉시 메시지를 처리하지 않고 큐에 비동기적으로 전달한다는 점이 특징입니다.반대로 SendMessage는 메시지를 즉시 처리할 때 사용합니다. 함수 원형BOOL PostMessage( HWND hWnd, UINT Msg, W..

c++ 2025.09.18

Visual Studio C++에서 libcurl로 JSON 요청/응답 처리하기

Visual Studio C++에서 libcurl로 JSON 요청/응답 처리하기C++ 프로젝트에서 외부 REST API 서버와 통신할 때는 보통 JSON을 이용합니다.이때 가장 널리 사용되는 라이브러리가 libcurl입니다.이번 글에서는 Visual Studio 환경에서 libcurl을 활용해 JSON 요청을 보내고 응답을 처리하는 방법을 단계별로 설명합니다.STEP 1. libcurl 설치하기vcpkg 사용: vcpkg install curl 실행 후 자동으로 프로젝트와 연동됩니다.수동 설치:libcurl 공식 다운로드 페이지에서 Windows용 패키지 다운로드Visual Studio 프로젝트 속성 → 추가 포함 디렉터리, 추가 라이브러리 디렉터리 등록링커 → 추가 종속성에 libcurl.lib 추가S..

c++ 2025.09.18

[C++] 메모리누수와 해결방안

C++ 메모리 누수 원인과 해결 방법 총정리! C++ 메모리 누수란?메모리 누수(Memory Leak)는 프로그램이 동적으로 할당한 메모리를 해제하지 않아, 사용하지도 못하면서 시스템 자원을 계속 차지하는 현상입니다. 누적되면 프로그램의 성능 저하, 시스템 불안정, 심할 경우 크래시까지 유발할 수 있습니다. 메모리 누수가 발생하는 대표적인 상황1. new로 할당하고 delete를 하지 않은 경우int* ptr = new int(10);// delete ptr; // 누락되면 메모리 누수 발생2. 예외(Exception) 처리 중 delete 누락void func() { int* data = new int[100]; if (/* error condition */) { throw st..

c++ 2025.03.24

[C++] 메모리 누수

C++에서 메모리 누수를 찾아내는 방법메모리 누수(memory leak)는 동적으로 할당한 메모리를 해제하지 않아 발생하는 문제로, 장기적으로 프로그램의 성능을 저하시킬 수 있습니다. 특히, C++과 같은 언어에서는 개발자가 메모리 관리를 직접 수행해야 하기 때문에 메모리 누수를 찾아내고 해결하는 것이 중요합니다. 1. 메모리 누수란?메모리 누수는 프로그램이 더 이상 필요하지 않은 메모리를 해제하지 않아서 발생하는 문제입니다.이는 장기간 실행되는 프로그램에서 심각한 문제를 초래할 수 있으며, 시스템 리소스를 낭비하게 됩니다.발생 원인new 또는 malloc()으로 할당한 메모리를 delete 또는 free()로 해제하지 않음예외(exception) 발생 시 메모리 해제 코드가 실행되지 않음전역 또는 정적..

c++ 2025.03.09

[c++] cmake 작성법

Boost 및 Spdlog 라이브러리 사용법 Boost 라이브러리 사용법Boost는 C++에서 다양한 기능을 제공하는 라이브러리로, 많은 프로그램에서 필수적으로 사용됩니다.Boost를 프로젝트에서 사용하는 방법을 소개합니다. 먼저 Boost 라이브러리의 헤더 파일 경로를 포함시켜야 합니다. 1. Boost 헤더파일 경로 설정Boost 라이브러리를 프로젝트에 추가하려면, CMake에서 Boost의 경로를 지정하고 헤더 파일을 포함시켜야 합니다.아래는 Boost 라이브러리의 경로를 설정하는 예제입니다:set(Boost_ROOT "/usr/local/boost") # Boost의 설치 경로set(Boost_LIBRARY_DIR "/usr/local/lib") # Boost 라이브러리가 있는 경로set(Bo..

c++ 2024.07.03
반응형