아무거나 개발공부 27

C++ - MFC 기초 클래스

MFC 콘솔 응용 프로그램 C/C++ 언어에 대한 지식만 있으면 곧바로 실습 가능 상당수의 MFC 클래스 사용 가능 (유틸리티 클래스, 집합클래스, 파일 입출력 클래스 등) 알고리즘 개발 시 유용 (GUI 배제한 간편한 프로그래밍 prinf() 등을 이용한 편리한 확인 가능) 실행 파일 생성 과정 컴파일러(console.h, stdafx.h, console.cpp, stdafx.cpp, resource.h) -> console.obj, stdafx.obj 리소스컴파일러(console.rc, 각종리소스(문자열,아이콘), resource.h) -> console.res 컴파일러 + 리소스컴파일러 -> 링커(API & MFC 라이브러리 , C/C++ 라이브러리) -> 실행파일(console.exe) 데이터 타..

C++ - SDK와 MFC 프로그래밍

MFC 프로그램 기본 골격 응용프로그램 클래스 정의 메인(=프레임) 윈도우 클래스 정의 응용 프로그램 객체 선언 메시지 맵 선언 -> 메세지 맵 부분은 afxmsg.h에 정의되어 있다. CHelloApp theApp; ---> int WINAPI WinMain() //MFC 라이브러리 내부에 숨겨진 프로그램 실행 시작점 { ptr = ... // 응용 프로그램 객체의 주소값으로 변수 ptr 초기화 Bool CHelloApp::InitInstance() { InitInstance(); // 초기화: 각종 초기화 작업과 더불어 메인 윈도우 객체 생성 //-> 메인 윈도우 객체의 생성자에서 // 운영체제 수준의 실제 윈도우를 만든다. } CMainFrame::CMainFrame() { } void CMainF..

C++ - MFC 개요

운영체제 컴퓨터 주기억장치에 상주 컴퓨터 시스템의 자원관리 응용프로그램 수행제어 사용자와 컴퓨터 HW 간의 인터페이스 담당 관리하는 자원 - CPU, 기억장치, 입출력장치 등 윈도우 운영체제의 특징 Graphic User Interface 메시지 구동 구조 멀티 태스킹 - 운영체제가 여러 개의 응용 프로그램을 동시 실행, 멀티스레딩 - 응용 프로그램 내부에서 여러 개의 스레드를 통해 실행 윈도우 으용프로그램의 특징 윈도우 API 윈도우 운영체제가 응용 프로그램을 위해 제공하는 각종 함수의 집합 -> HW를 제어하는데 필요한 함수 사용 메세지 핸들러 집합 - 메세지 핸들러는 메시지를 받았을 때 동작을 결정하는 코드 -> 메세지 핸들러 집합을 윈도우 프로시저라 부름 실행 파일과 DLL 집합 - DLL(Dyn..

C++ - 전처리기 지시어(조건부 컴파일)

C++ 실행 파일 만들어지는 순서 전처리 -> 컴파일 -> 오프젝트 파일 생성 -> 링커에 의해 실행파일 생성 전처리 위 순서 중 전처리는 컴파일 하기 전 소스 파일 내에 존재하는 전처리 지시어를 처리하는 작업을 뜻한다. 특징은 #기호가 붙는다. 조건부 컴파일 소스파일 중 조건에 부합하는 소스만 컴파일 하는 방법이다. 대표적으로 #if, #ifdef, #elif 등이 있다. 그 중 ifdef는 상수가 정의 되어 있다면 참이고 컴파일 한다. 아래는 예제이다. #define A 100 #ifdef A //실행된다. 나머지는 기존의 if else문 처럼 사용하면 된다.

C++ - Windows API와 MFC

Windows API API는 Windows의 OS가 제공하는 함수들이며 OS가 직접 사용하는 함수들이다. 즉 OS나 시스템 프로그래밍과 직접 통신해야 하는 저수준 프로그래밍 에서는 필수적이다. 특히 MFC는 Windows API 함수를 기반으로 만들어진거기 때문에 MFC를 사용하기 위해서는 반드시 알아야한다. BOOL : 단일 논리값 ex) 0,1 HANDLE : 커널 객체를 다루기 위한 핸들 ex) pointer와 비슷 DWORD : 정수(int) TCHAR : 문자(char) LPTSTR : 문자열(TCHAR * ) MFC 자료형 COLORREF : RGB값을 나타낼 수 있는 자료형이다. 아래는 예시이다. COLORREF colorValue = RGB(255,255,255); CString : MF..

MFC - CRuntimeClass

기능 클래스 이름을 사용하지 않고 객체를 생성한다. 메모리 상에 객체의 자료형을 검사한다. 메모리 상에 객체의 유효성을 검사한다. 객체 직렬화(Serialization)에 대한 정보를 제공한다. 사용조건 CRuntimeClass 구조체를 이 기능을 사용하려는 클래스의 static 멤버변수로 입력 CRuntimeClass 구조체를 static 멤버변수로 사용하기 위해 3가지 매크로 이용 선언부 : DECLARE_DYNAMIC, DYNCREATE, SERIAL 정의부 : IMPLEMENT_DYNAMIC 나머지 같음 뒤의 매개변수에 따라 기능이 달라짐 CObject로부터 상속받아야 한다. (CObject는 MFC의 최상위 클래스) MFC 내부에서 CRuntimeClass를 이용하는 객체에 접근할 때, CObj..

728x90