[C++]/MFC 프로그래밍 기초(6)
-
[MFC] 2024/04/22 Thread 이용한 간단한 시계
보호되어 있는 글입니다.
2024.06.11 -
5. CCriticalSection 클래스
CCriticalSection 멀티 쓰레드 프로그래밍을 할 때 공유 메모리에 동시 접근을 막아주는 MFC 클래스 멀티스레드 환경에서 공유된 자원에 대한 접근을 제어하기 위해 사용된다. 공유 데이터 보호: 여러 스레드가 공유된 데이터에 접근할 때 데이터의 일관성을 보장하기 위해 사용된다. CCriticalSection을 사용하여 한 번에 하나의 스레드만이 데이터에 접근하도록 보호할 수 있다. 임계 영역 보호: 임계 영역이라고도 불리는 코드 부분에서 여러 스레드가 동시에 실행되지 않도록 보호할 때 사용된다. Lock과 UnLock의 사용 Lock (Enter): 임계 영역에 진입하기 전에 호출되는 메서드 다른 스레드가 해당 임계 영역에 들어가지 못하도록 락을 설정 Lock 메서드를 호출한 스레드는 해당 CC..
2024.04.17 -
4. CString 클래스와 CTime 클래스
CString 문자열을 다루는데 사용되는 MFC 클래스 기본적으로 유니코드 문자열을 지원하고, 멀티바이트 문자열도 사용할 수 있다. 포인터와 달리 문자열의 할당과 해제를 자동으로 처리하므로 메모리 관리에 용이하다. 문자열 연결, 분할, 검색, 대소문자 변환 등의 작업을 쉽게 처리할 수 있다. 🍃 CString의 주요 기능 문자열 생성 및 초기화: 문자열을 생성하고 초기화하는 생성자를 제공한다. 문자열 조작: 문자열을 연결, 분할, 복사, 자르기, 대소문자 변환 등의 작업을 수행할 수 있다. 문자열 검색: 특정 문자열 또는 문자의 존재 여부를 확인하고, 위치를 검색할 수 있다. 문자열 형식 지정: 서식 지정 문자열을 사용하여 문자열을 형식화하고 출력할 수 있다. 문자열 비교: 다른 문자열과의 비교를 통해 ..
2024.04.17 -
3. CWinThread와 AfxBeginThread
Thread를 사용하는 이유 동시성: 스레드를 사용하면 여러 작업을 동시에 실행할 수 있다. 이는 프로그램의 성능을 향상시키고 여러 작업을 병렬로 처리할 수 있도록 한다. 이는 멀티코어 프로세서에서 시스템 자원을 효율적으로 사용할 수 있게 한다. 응답성 향상: 긴 작업을 수행하는 동안 UI가 응답하지 않는 문제를 해결하기 위해 스레드를 사용할 수 있다. 예를 들어, UI 스레드에서는 사용자 입력을 처리하고, 백그라운드 스레드에서는 긴 작업을 처리하여 UI의 응답성을 유지할 수 있다. 백그라운드 작업 처리: 스레드를 사용하여 백그라운드에서 작업을 처리할 수 있다. 이는 네트워크 통신, 파일 I/O, 데이터베이스 쿼리 등과 같은 작업을 백그라운드에서 비동기적으로 수행할 때 유용하다. CWinThread와 A..
2024.04.17 -
2. DC(Device Context)와 CDC
DC와 CDC의 정의 🍃 Windows는 세 가지 동적 연결 라이브러리로 구성된다. 메모리와 프로그램을 관리하는 Kernel 영역 User Interface와 Window를 관리하는 User 영역 화면 처리와 그래픽을 담당하는 GDI - (DC와 CDC 부분) 🍃 DC(Device Context)는? GDI는 Windows 운영 체제에서 화면에 접근하는 것을 담당하는데, 그래픽 출력을 관리하기 위한 추상적인 개념이 DC이다. DC에 저장되어 있는 객체들을 사용해 형식에 맞는 선언을 해줘야 한다. (화면, 프린터, 메모리 등의 출력 장치에 대한 정보를 가지고 있다. DC는 그래픽 요소를 생성하고 제어하는 데 사용된다. 예를 들어, 선을 그리거나 사각형을 채우는 등의 그래픽 작업을 수행할 수 있다. 🍃 CD..
2024.04.17 -
1. MFC의 구성 및 기본 클래스
CObjectCCmdTargetCWinThreadCWinAppCWndCDocument1. CObjectMFC 기본 구조의 최상위 클래스메모리에 클래스를 설정해주는 클래스2. CCmdTarget메세지 처리를 담당하는 클래스키보드 입력이나 마우스 클릭 등 사용자가 입력하면 메세지를 처리한다.3. CWinThreadThread를 관리하는 클래스독립적인 모듈인 스레드는 하나의 프로그램 당 최소 하나가 필요하다.C++에서는 CWinThread와 afxbeginthread를 통해 스레드를 생성해줄 수 있다.4. CWinApp응용 프로그램과 관련된 클래스이다. 따라서, 응용프로그램 자체를 의미하는 클래스라 봐도 무방하다.메인 윈도우 생성, 클래스 등록과 같은 역할을 수행한다.MFC 프로젝트를 구성하는 가장 기본..
2024.04.17