'MFC_C++/Task' 카테고리의 글 목록
eull 님의 블로그
MFC_C++/Task
MFC_C++ 스레드 (Thread)
2026.04.20
아직 덜 공부함, 더 추가할 예정 🌟 스레드란 무엇인가?더보기스레드를 한 마디로 표현하자면 "프로그램 안에서 흐르는 실행 흐름" 이다. 프로그램이 실행되면 기본적으로 하나의 스레드(메인 스레드)가 자동으로 생성된다.이 하나의 흐름 위에서 코드가 위에서 아래로, 순서대로 실행된다. 공장으로 비유한다면?싱글 스레드 = 직원 1명이 검사도 하고, 버튼도 누르고, 포장도 혼자 다 함.멀티 스레드 = 직원 여러 명이 각자 맡은 일을 동시에 처리함 🌟 그럼 왜 스레드를 써야 하는가?더보기MFC 프로젝트를 새로 만들면, 따로 스레드를 만들지 않는 한 모든 코드가 메인 스레드 하나에서 실행된다. 문제는void CMyDlg::OnBtnClick(){ // 이 함수가 실행되는 동안 // 버..
MFC_C++/Task
MFC_C++ 멀티바이트 vs 유니코드
2026.04.03
🌟 멀티바이트 vs 유니코드, 도대체 뭐가 다른가?더보기C++ / MFC 개발을 하다 보면 char*, wchar_t*, CString, _T() 같은 게 뒤섞여서 빌드 에러가 빵빵 터진다.오늘은 그 원인인 멀티바이트 vs 유니코드에 대해 정리해본다.1. 컴퓨터는 문자를 어떻게 저장할까?컴퓨터는 모든 걸 숫자 (0과 1)로 저장한다.문자도 마찬가지다. 'A'라는 글자를 저장하려면 "'A'는 숫자 '65'야" 라고 약속을 정해야 한다.이 약속을 인코딩(Encoding) 이라고 한다.2. 멀티바이트 (Multi-Byte) 란?문자 하나를 1바이트 또는 2바이트로 표현하는 방식영어는 1바이트, 한글/한자 같은 문자는 2바이트 사용대표적인 인코딩: EUC-KR, CP949C++에서는?char ch = 'A';..
MFC_C++/Task
MFC_C++ CallBack
2026.03.27
🌟 CallBack 함수란?더보기"특정 상황이 되면 이 함수를 호출해줘" 라며 미리 등록해주는 함수음식점에서 진동벨을 받고 자리에 앉아있는 것과 같다.음식이 준비되면 → 진동벨이 울린다. (콜백 함수 호출)손님은 카운터를 계속 바라볼 필요 없이 다른 일을 할 수 있다. 1단계 - 콜백 함수 타입 정의typedef void (*pfLight_Status)(int nIndex, int nStatus);// ↑ 함수 포인터 타입 이름// ↑ 이 형태의 함수를 가리킬 수 있음 2단계 - 콜백 함수를 등록하는 함수void SetCallBack_Status(void* _ctx, pfLight_Status _pfStatus);// ..
MFC_C++/Task
MFC_C++ 윈도우 계산기 리펙토링
2026.03.19
🌟계산기 구조더보기 현재 본인이 작성한 코드는 모든 수식을 에딧 컨트롤에 직접 입력하고, '=' 버튼을 누르면 계산이 이루어지는 방식이다. 계산 결과는 별도의 에딧 컨트롤에 표시되며, 수식 기록은 새 다이얼로그에서 확인할 수 있다.입력 방식버튼 클릭 또는 키보드 입력으로 수식을 구성한다.입력된 수식은 수식 에딧 컨트롤에 실시간으로 표시된다.입력 시 아래 규칙을 검증한다. (AppendInput)수식을 연산자로 시작하거나 연산자를 연속으로 입력할 수 없다.닫는 괄호( ')' )는 여는 괄호 ( '(' ) 개수를 초과할 수 없다.계산 흐름 ('=' 버튼)수식이 비어있거나 연산자로 끝나는 경우 오류 처리닫히지 않은 괄호를 자동으로 닫음Tokenize - 수식 문자열을 숫자/연산자/괄호 단위로 분리Shunt..
MFC_C++/Task
MFC_C++ 배열
2026.03.03
🌟 2D 이미지 → 1D 배열 인덱스 찾기더보기핵심 개념2D 이미지는 메모리에 1D 배열로 저장된다. 예를 들어 3 X 3 이미지는 이렇게 생겼지만1 2 34 5 67 8 9메모리에는 이렇게 한 줄로 저장된다.인덱스: 0 1 2 3 4 5 6 7 8값: 1 2 3 4 5 6 7 8 9인덱스 찾는 수식인덱스 = m_nWidth * nH + nWnH = 몇 번째 줄인지 nW = 그 줄에서 몇 번째 칸인지m_nWidth = 가로 길이왜 이 수식인가?줄이 바뀔 때마다 가로 길이(m_nWidth)만큼 인덱스가 건너뛰어진다.nH=0 줄 시작 → m_nWidth * 0 = 0nH=1 줄 시작 → m_nWidth * 1 = 3nH=2 줄 시작 → m_nWidth * 2 = 6거기서..