반응형

2025/09 37

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

.NET Task.Run 사용법: 비동기 프로그래밍을 시작하는 가장 쉬운 방법

.NET Task.Run 사용법: 비동기 프로그래밍을 시작하는 가장 쉬운 방법.NET 개발에서 비동기 프로그래밍은 빠질 수 없는 중요한 주제입니다.그중에서도 Task.Run은 가장 많이 사용되는 비동기 실행 메서드 중 하나입니다.이 메서드는 내부적으로 ThreadPool을 활용하여 작업을 큐에 넣고 실행합니다.호출 즉시 제어를 반환하므로, 호출한 쪽 코드는 멈추지 않고 다음 작업을 이어갈 수 있습니다. Task.Run 기본 개념Task.Run은 .NET의 Task Parallel Library(TPL)에서 제공하는 API로, 작업을 비동기적으로 실행하기 위해 사용됩니다. 호출 시 새로운 작업이 스레드풀에 등록되고, 그 결과는 Task 또는 Task로 반환됩니다. 기본 형태Task.Run(() => { ..

c# 2025.09.11

.NET ThreadPool.QueueUserWorkItem: 비동기 작업

.NET ThreadPool.QueueUserWorkItem 사용법: 비동기 작업 .NET 개발자라면 한 번쯤 ThreadPool.QueueUserWorkItem을 접해봤을 것입니다. 이 메서드는 스레드를 직접 생성하지 않고도 .NET에서 제공하는 스레드풀(ThreadPool) ThreadPool과 QueueUserWorkItem 기본 개념ThreadPool은 .NET 런타임에서 관리하는 스레드 모음으로, 작업자 스레드(worker thread)와 IO 스레드를 포함합니다. ThreadPool을 사용하면 새로운 스레드를 직접 만들 필요 없이, 이미 생성된 스레드를 재사용할 수 있어 성능과 효율성이 뛰어납니다.QueueUserWorkItem은 ThreadPool에 작업(콜백 함수)을 큐에 넣고 비동기로 실..

c# 2025.09.11

C# Delegate 완벽 정리: Action, Func, Predicate, EventHandler 사용법

C# Delegate 완벽 정리: Action, Func, Predicate, EventHandler C#에서 Delegate(델리게이트)는 메서드를 참조할 수 있는 타입입니다. 쉽게 말해, 메서드를 변수처럼 다룰 수 있게 해주는 기능이죠. 델리게이트는 이벤트(event), 콜백(callback), 람다(lambda) 등 다양한 곳에서 활용되며 C#의 핵심 문법 중 하나입니다. 하지만 매번 델리게이트를 직접 정의하는 것은 번거롭기 때문에, .NET Framework에서는 자주 쓰이는 형태의 델리게이트를 미리 정의해 제공하고 있습니다. 대표적으로 Action, Func, Predicate, EventHandler 네 가지가 있..

c# 2025.09.10

C# 이벤트(Event) 완벽 가이드: delegate와 event 차이, 사용법

C# 이벤트(Event) 완벽 가이드 C# 프로그래밍을 하다 보면 반드시 만나게 되는 개념 중 하나가 바로 이벤트(event)입니다. 버튼 클릭, 알람 울림, 데이터 변경과 같은 상황을 처리할 때 이벤트는 필수적으로 사용됩니다. 이번 글에서는 이벤트의 기본 개념부터 선언, 구독, 해제, 커스텀 이벤트 데이터 전달까지 예제 코드와 함께 상세히 설명하겠습니다. 1. 이벤트란 무엇인가? 이벤트는 쉽게 말해 "특정 상황이 발생했을 때 알림을 보내는 메커니즘"입니다. 예를 들어, 버튼을 클릭하면 Click 이벤트가 발생하고, 이 이벤트를 구독한 코드가 실행됩니다. 이벤트의 구조는 발생자(publisher)와 구독자(su..

c# 2025.09.10
반응형