전체 글 6

MFC(5) MFC SDI 프로그램 기본 구조 2

HelloMFC를 실행하면 해당 창이 뜨고  위와 같이 분리가 된다는데.. 나는 안된다.. 왤까..용어 정리Caption bar 저기 저 창닫기, 창크기 축소, 창 내리기 버튼, 아래 파일 편집 등등을 다 합쳐서  CFrameWnd라고 한다. 이놈은 부모가 된다. 이 밑에 자식을 가진다. 그 자식중에 Toolbar라고 한다. 아래에 있는 그림이다. Tool bar가 Caption bar에 도킹한다고 보면 된다. status bar(빨간색 윤곽선) 이건 원래 고정되어 있다.Cview(자식..)이 윈도우에 사실상 겹치게 되는 놈(녹색 윤곽선)이 Cview  Z order윈도우가 겹첬을 때 누가 더 잘 보이게 하냐 이거다. 윈도우 보이게 하는 순서다.   보통 기본적으로 FrameWnd는 최소 한개가 있어야 ..

카테고리 없음 2025.01.17

MFC(4) MFC SDI 프로그램 기본 구조 1

F7 눌러서 빌드좀 하기ctrl+F5 누르면 실행  이런게 MFC로 만든 예제들이다.클래스 뷰클래스가 여러개 있는 것을 확인했다.CHelloMFCApp 클래스를 먼저 보겠다. CHelloMFCApp 디자인 패턴이 등장하나. MFC는 싱글톤 패턴을 사용한다. 자바의 스프링은 컨테이너가 알아서 해준다. 근데 MFC는 그런거 없다. 모든 책임은 우리에게 있다..InitInstance가 Main함수의 시작이라고 보면 된다. ExitInstance() 인스턴스 종료 즉 프로그램 종료시 불려진다. 호출된다. 뜻이다. 영어 표현으로는 Called by framework이다. 이런 구조이다. 지금은 HelloMFC는 구조를 익히는 것이 아주 중요하다.이 프레임 워크는 당연히 MFC 프레임 워크이다. 그러면이 프레임워크..

IT잡다/MFC 2025.01.16

MFC(3)-HelloWorld Win32 API 버전 코드 분석

MFC와 유사한 Win32 API 코드 분석을 해보자. 절대 깊이 분석하지는 말자.wWinMain윈도우 API에서는 wWinMain()이 어플리케이션의 시작이다. 이 함수가 return 하면 종료된다. wWinMain이 시작하자 마자 class 등록을 한다. MyRegisterClass윈도우라고 하는 것은 몇몇 속성들을 가지고 있다. 속성 중에 class가 있다. 여기서 윈도우 class는 종류라고 생각하면된다. 컴퓨터 언어의 class와는 전혀 다르다. 새로 생긴 윈도우(창)는 자신만의 고유 종류를 OS에 등록하게 된다. 이때 등록하려면 다양한 정보를  제공해야한다. 해당 작업이 끝나면 어플리케이션 초기화를 수행한다. InitInstanceMS 오피스를 사용한다고 하자. 이거를 설치하고 난 후에 사용을..

IT잡다/MFC 2025.01.14

MFC(2) - Visual Studio Community 2022 설치 & 개발환경

검색 창에 visual studio installer에 들어간다. 이미 2022년이 깔려져 있으므로 추가 패키지 다운을 위해서 수정을 선택한다. MFC 개발을 위해서는 'C++을 사용한 데스크톱 개발'을 선택한다. 제일 중요!! 최신 v143 빌드 도구용 c++ MFC 선택!!! 노란색으로 칠한 것들도 다 선택합니다. 이떄 파란색은 옵션이기는 하나 나중에 API+MFC를 활용하는 프로젝트가 생기면 유용하므로 선택하는 것을 추천합니다.(참고로 visual studio의 개발 설정은 visual c++이여야 한다. 한번 확인하는 것을 추천합니다.) 해당 앱 클릭하고 저장소 위치랑 앱 이름 정하면 끝!!개발환경 글꼴 바꾸기도구 - 옵션환경-> 글꼴 및 색 선택 텍스트 편집기, 출력 창, 호출 스택 창 이렇게 ..

IT잡다/MFC 2025.01.13

MFC(1)

윈도우에서만 실행되는 응용 프로그램Message Driven 방식을 채택하고 있다.Message Driven1. Event 대기사용자가 Human Input Device(HID)로 발생시킨다. (EX, 마우스, 키보드 등등)이런 하드웨어 장치를 구경하면 운영체제가 하나의 이벤트로 인식하고 대기시킨다.2. Event 수신OS가 Event 수신해3. Message 발생OS가 거기에 대응하는 메시지( 부호가 없는 정수 )로 변환시켜준다.4. Message를 수신해야할 Window 처리기(함수) 검색운영체제가 해당 처리기 함수를 CallBack 한다(중요)함수를 만들어서 등록을 해준다.그러면 등록된 함수가 적정한 시점 즉 어떤 메시지가 불렸을 때 알아서 함수가 불러집니다.5. 메시지 처리함수가 호출된다! 그러면..

IT잡다/MFC 2025.01.13

CI/CD

CI/CDCI(Continuous Integration)지속적인 통합의 약자버그 수정이나 새로 만드는 기능들이 주기적으로 main repository에 빌드되어서 merge되는 것을 말한다. 개발자들은 코드 변경사항을 main repository에 주기적으로 빈벅하게 merge 해야 한다. 같은 기능을 개발하는 여러 개발자가 시간이 흐른 후 해당 기능을 merge할 경우 merge error를 잡느라 많은 시간을 허비 할 수 있기 때문이다. 그렇기 때문에 새로운 기능을 구현할 때 해당 기능을 작은 단위로 나누어서 개발하고 통합해 나아가야 한다. 주기적으로 merge될 코드의 변경사항이 자동으로 빌드되어서 코드 변경사항 이후에도 빌드가 성공적으로 확인이 되어야 하고 새로 추가된 코드 변경사항 뿐만 아니라 ..

IT잡다 2025.01.07