윈도우 운영체제와 윈도우 응용 프로그램의 특징 SDK 응용 프로그램 MFC 응용 프로그램

Slides:



Advertisements
Similar presentations
프로그래밍언어론 TA 윤들녁. 소개 윤들녁 연락처 : 공대 7 호관 4 층 401 호 데이터베이스 연구실 실습 후 날짜 _ 학번.zip 으로.
Advertisements

컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
윈도우 일반 공주영상대학 게임과 이 은 순.
7장. MDI 프로그래밍 MDI 프로그래밍에 대한 내용을 배우도록 한다. 지금까지 배운 것은 생성된 윈도우에 단일 화면이 존재하는 형태였다. 이것을 SDI라고 부르고 Single Document Interface의 약자이다. 하나의 문서를 하나의 화면에 보여주는 형태의.
Chapter 16 : Struts 프레임워크 2. chapter 16 : Struts 프레임워크 2.
Windows Programming Chapter 1. Introduction to SDK
윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다.
MFC Application Frameworks (AFX)
클래스 class, 객체 object 생성자 constructor 접근 access 제어 이벤트 event 처리.
WSAAsync Select 김대열 Bit - Academy Sunmoon University, Korea.
제1장 윈도우 프로그래밍 1.1 윈도우 프로그래밍의 개념 1.2 윈도우 프로그램의 기본 구조
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
제1장 윈도우 프로그래밍 1.1 윈도우 프로그래밍의 개념 1.2 윈도우 프로그램의 기본 구조
Dongseo univ. Computer engineering
5장. 단축키와 비트맵 윈도우 프로그램에는 화면에서 사용자들의 입력을 받아 들이고 출력을 위한 코드 외 부분이 존재한다. 이 부분을 주로 리소스라고 부르고 이들은 주로 화면에 나타난다. 메뉴, 툴바, 비트맵, 단축키, 대화상자 등이 여기에 속한다. 이 부분들은 우리의 프로그램의.
A P I 학과 컴퓨터공학과 학번 이름 김동영.
Image & Video processing
Power Java 제3장 이클립스 사용하기.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
윤 홍 란 다이알로그(대화상자) 윤 홍 란
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Windows Programming 시작하기
Lab 2 Guide: 교재 3장 그래픽 예제 ( 쪽) - 펜과 브러시로 그리기 - 튀는 공
Power Java 제2장 자바 개발 도구.
콘텐츠 제작 프로젝트 [교재] - OpenGL 프로그래밍 가이드, 제4판, Dave Shreiner, Mason Woo, Jackie Neider, Tom Davis 공저, 남기혁 역, 정 보문화사, [참고자료] OpenGL Programming.
강사 : 이준근 Win32 API 강사 : 이준근
MS SQL Server - 마이크로소프트 사가 윈도우 운영 체제를 기반으로 개발한 관계 DBMS
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
CH 1. MFC 전체보기 정보통신공학과 안 재 형.
Java 기초 (Java JDK 설치 및 환경설정)
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
TETRIS FOR QTOPIA.
Visual Basic .NET 처음 사용하기.
1. C++ 시작하기.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
NJM Messenger 박상원 박연호.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
1. 윈도우 프로그래밍의 이해.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
Windows Programming 시작하기
Visual C++ Programming
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
강의 개요. 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
홀인원2.0 설치 메뉴얼.
영상처리 실습 인공지능연구실.
GUI 소켓 애플리케이션 Chapter 08. * 학습목표 윈도우 GUI 애플리케이션의 구조와 동작 원리를 이해
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
Lesson 2. 기본 데이터형.
Lab 1 Guide: 교재 2장 DrawX ( 쪽)
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
그래픽 모듈 편집.
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
( Windows Service Application Debugging )
오토베이스9 사용자 라이브러리 오토베이스 교육센터 그래픽 모듈 설정과 화면전환에 대하여 자세히 알아본다. <목차>
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
Windows 프로그래밍 환경 및 MFC의 구조
발표자 : 이지연 Programming Systems Lab.
9 브라우저 객체 모델.
.Net FrameWork for Web2.0 한석수
JSP Programming with a Workbook
Installation Guide.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
TCP/IP를 이용한 마우스 공유 (Synergy 따라하기)
Chapter 11. 문서 인쇄 및 파일 형식.
MFC 기초 윈도우 응용프로그램 개발 간략한 역사 Microsoft Foundation Classes
Presentation transcript:

윈도우 운영체제와 윈도우 응용 프로그램의 특징 SDK 응용 프로그램 MFC 응용 프로그램 윈도우 프로그래밍 기초 윈도우 운영체제와 윈도우 응용 프로그램의 특징 SDK 응용 프로그램 MFC 응용 프로그램

윈도우 운영체제의 특징 (1) 그래픽 사용자 인터페이스(GUI) Windows 3.1 (16비트), Windows 95 (32비트) Windows XP(32비트), Windows 7 (64비트) 툴바 시스템 메뉴 메뉴 상태 표시줄 최소/최대/닫기 버튼 대화상자 스크롤 바 클라이언트 영역(Client Area)

윈도우 운영체제의 특징 (2) 메시지 구동 구조 이벤트 발생 대기 ... 시스템 메시지 큐 메시지 큐 #3 메시지 큐 #2 응용 프로그램 메시지 큐 #1 메시지 큐 #2 메시지 큐 #3 ... 처리 대기

윈도우 운영체제의 특징 (3) 멀티태스킹과 멀티스레딩 멀티태스킹(Multitasking) 운영체제가 여러 개의 응용 프로그램을 동시에 실행 멀티스레딩(Multithreading) 응용 프로그램 내부에서 여러 개의 실행 흐름(=스레드)을 동시에 진행

윈도우 응용 프로그램의 특징 (1) 메시지 핸들러 집합 메시지 핸들러(Message Handler)란? 메시지를 받았을 때 동작을 결정하는 코드 메시지 핸들러의 집합을 윈도우 프로시저(Window Procedure)라 부름 응용 프로그램 메시지 핸들러 #1 메시지 핸들러 #2 메시지 핸들러 #3 메시지 핸들러 #4 메시지 핸들러 #5 메시지 핸들러 #6 ...

윈도우 응용 프로그램의 특징 (2) API 호출문 집합 윈도우 API(Application Programming Interface)란? 윈도우 운영체제가 응용 프로그램을 위해 제공하는 각종 함수의 집합 16비트 윈도우에서는 Win16 API, 32 또는 64비트 윈도우에서는 Win32 API 응용 프로그램 call API#1 call API#2 ... call API#3 call API#4 ... call API#5

윈도우 응용 프로그램의 특징 (3) 실행 파일과 DLL 집합 DLL(Dynamic-Link Library)이란? 프로그램이 실행 중에 결합하여 사용할 수 있는 코드와 리소스의 집합 윈도우 운영체제가 제공하는 API는 DLL 형태로 제공되며, 응용 프로그래머는 필요한 기능을 DLL로 제작하기도 함 응용 프로그램 실행 파일 DLL #1 DLL #2 DLL #3 DLL #4 DLL #5 ...

윈도우 응용 프로그램의 특징 (4) 장치 독립성 장치 독립성(Device-Independency)이란? 주변 장치가 바뀌어도 장치 드라이버(Device Driver)만 설치하면 프로그램을 수정하지 않고 실행할 수 있음 응용 프로그램 API 장치 드라이버 주변 장치

윈도우 응용 프로그램의 개발 방식 (1) SDK(System Development Kit) 특징 장점 단점 윈도우 API  응용 프로그램 코드(C/C++ 언어) 장점 API를 직접 다루기 때문에 세부 제어가 가능함 윈도우 운영체제가 제공하는 모든 기능을 사용 가능 생성 코드의 크기가 작고 속도도 빠름 단점 다른 개발 방식에 비해 생산성이 매우 낮음

윈도우 응용 프로그램의 개발 방식 (2) RAD(Rapid Application Development) 특징 (비주얼 베이직, 델파이 등) 시각적 화면 디자인  응용 프로그램 코드 장점 간편하게 직관적으로 프로그래밍할 수 있음 빠른 시간 내에 원하는 기능의 프로그램 개발 가능 단점 SDK나 클래스 라이브러리를 이용한 개발 방식보다 생성 코드의 크기가 크고 실행 속도도 떨어지는 편임 윈도우 운영체제가 제공하는 모든 기능을 활용한 세부적인 제어가 어려운 경우가 있음

윈도우 응용 프로그램의 개발 방식 (3) 클래스 라이브러리 특징 (MFC, QT 등) 장점 단점 클래스 라이브러리  응용 프로그램 코드(객체지향언어) 장점 SDK를 이용한 방식보다 생산성이 높음 API를 직접 사용해서 세부적으로 제어할 수 있음 RAD 개발 방식보다 코드 크기와 실행 속도 면에서 유리함 단점 객체 지향 프로그래밍에 익숙해야 함 클래스 라이브러리의 구조와 각 클래스의 기능 및 관계를 파악하기 위한 초기 학습 기간이 긴 편임

윈도우 응용 프로그램의 개발 방식 (4) .NET 프레임워크 윈도우 운영체제에 설치할 수 있는 소프트웨어 개발 및 실행 환경(자바에 대항하기 위해 개발) 공용 언어 런타임(CLR, Common Language Runtime) 이라는 소프트웨어 가상 머신을 제공하며, 가상 머신의 제어 하에 응용 프로그램이 구동됨(장치 독립성) 윈도우 API에 버금가는 방대한 라이브러리를 제공하며, 언어에 상관없이 라이브러리를 사용 가능(언어 독립성) C#, 비주얼 베이직, F#, C++ 등

HelloSDK 예제 작성 (1) SDK 프로그램 기본 골격 ① 윈도우 클래스(WNDCLASS 구조체)를 정의(초기화)하고 운영체제에 등록 ② 윈도우를 생성하고 화면에 보이게 함 ③ 메시지 루프를 구동 ④ 윈도우 프로시저에서 메시지 처리

HelloSDK 예제 작성 (2) 프로젝트 종류 선택 (비주얼 스튜디오 2005)

HelloSDK 예제 작성 (3) 1단계

HelloSDK 예제 작성 (4)

SDK 프로그램 기본 구조 (1) HelloSDK 예제 코드 (1/4) #include <tchar.h> #include <windows.h> // WinMain 함수에서 참조하므로 함수 원형을 선언한다. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS wndclass; HWND hwnd; MSG msg; // 1. 윈도우 클래스를 초기화하고 운영체제에 등록한다. wndclass.style = CS_HREDRAW | CS_VREDRAW; // 스타일 지정 wndclass.lpfnWndProc = WndProc; // 윈도우 프로시저 이름 wndclass.cbClsExtra = 0; // 여분 메모리(0바이트) wndclass.cbWndExtra = 0; // 여분 메모리(0바이트) wndclass.hInstance = hInstance; // 인스턴스 핸들 wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); // 아이콘 모양 wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); // 커서 모양

SDK 프로그램 기본 구조 (2) HelloSDK 예제 코드 (2/4) wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); // 배경(흰색) wndclass.lpszMenuName = NULL; // 메뉴(NULL->메뉴 없음) wndclass.lpszClassName = TEXT("HelloClass"); // 윈도우 클래스 이름 if(!RegisterClass(&wndclass)) return 1; // 2. 윈도우를 생성하고 화면에 보이게 한다. hwnd = CreateWindow(TEXT("HelloClass"), TEXT("HelloSDK"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hwnd, nCmdShow); // 3. 메시지 큐에서 메시지를 하나씩 꺼내서 처리한다. while (GetMessage(&msg, NULL, 0, 0) > 0) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam;

SDK 프로그램 기본 구조 (3) HelloSDK 예제 코드 (3/4) LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; TCHAR *str = TEXT("Hello, SDK"); // 4. 발생한 메시지의 종류에 따라 적절히 처리한다. switch(message) { case WM_CREATE: return 0; case WM_LBUTTONDOWN: MessageBox(hwnd, TEXT("마우스를 클릭했습니다."), TEXT("마우스 메시지"), MB_OK); case WM_PAINT: hdc = BeginPaint(hwnd, &ps); TextOut(hdc, 100, 100, str, _tcslen(str)); EndPaint(hwnd, &ps);

SDK 프로그램 기본 구조 (4) HelloSDK 예제 코드 (4/4) case WM_DESTROY: PostQuitMessage(0); return 0; } // 응용 프로그램이 처리하지 않은 메시지는 운영체제가 처리한다. return DefWindowProc(hwnd, message, wParam, lParam);

SDK 프로그램 기본 구조 (5) SDK 프로그램 동작 원리 이벤트 발생 응용 프로그램 #1 시스템 윈도우 프로시저 메시지 큐 메시지 큐 #1 메시지 큐 #2 메시지 큐 #3 ... 응용 프로그램 #1 메시지 루프 메시지 핸들러 #1 메시지 핸들러 #2 메시지 핸들러 #3 DefWindowProc() 윈도우 프로시저

다른 SDK 예제 작성 (1) 1단계

다른 SDK 예제 작성 (2)

다른 SDK 예제 작성 (3)