PowerPoint 프레젠테이션

Similar documents
윈도우즈 프로그래밍

<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>

MFC 프로그래밍

Microsoft PowerPoint - 09-CE-7-선과 도형

1장 윈도우 프로그래밍 들어가기

Microsoft PowerPoint - hci2-lecture1.ppt

윈도우 프로그래밍

Microsoft PowerPoint - 04windows.ppt

Chapter 1. MFC 시작하기

Microsoft PowerPoint - hci2-lecture1.ppt

학습목차 r컴퓨터분해를통한본체살펴보기 r컴퓨터구성요소 r컴퓨터의기능 r버스와상호연결 컴퓨터구조 2 4. 컴퓨터시스템의구성과기능

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

Microsoft PowerPoint - 09-CE-5-윈도우 핸들

K&R2 Reference Manual 번역본

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

디지털영상처리3

<312DBED5BACEBCD328B8D3B8AEB8BB2CB8F1C2F7292DBCF6C1A42E687770>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

API 매뉴얼

디지털영상처리3

마이크로프로세서 개요

04장 메시지 처리 유형

Microsoft PowerPoint - CPP_chap1

API 매뉴얼

학습목차 r 컴퓨터본체에서 CPU 의위치살펴보기 r CPU 의성능 r CPU 의기능 r CPU 의조직 r 레지스터의조직 r 명령어사이클 r 명령어파이프라이닝 컴퓨터구조 2 9. CPU 조직과기능

윈도우즈 프로그래밍

Microsoft PowerPoint - a10.ppt [호환 모드]


Microsoft PowerPoint APUE(Intro).ppt

6주차.key

Chapter #01 Subject

PowerPoint 프레젠테이션

Microsoft PowerPoint - o8.pptx

PowerPoint 프레젠테이션

歯MDI.PDF

chap x: G입력

BMP 파일 처리

C# Programming Guide - Types

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>

학습목차 r 개념으로살펴보는 CPU 속의제어장치 r 마이크로연산 r 제어장치의동작 r 마이크로프로그램을이용한제어 컴퓨터구조 제어장치

슬라이드 1

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

hlogin2

Microsoft PowerPoint os2.ppt [호환 모드]

Microsoft PowerPoint - hy2-12.pptx

PCServerMgmt7

PowerPoint 프레젠테이션

untitled


슬라이드 1

thesis

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

Chapter_06

초보자를 위한 C# 21일 완성

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Deok9_Exploit Technique

Microsoft PowerPoint - 30.ppt [호환 모드]

PowerPoint 프레젠테이션

Microsoft PowerPoint - [2009] 02.pptx

Lab 3. 실습문제 (Single linked list)_해답.hwp

歯Lecture2.PDF

Chapter ...

제11장 프로세스와 쓰레드

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

Microsoft PowerPoint - chap01-C언어개요.pptx

歯처리.PDF

No Slide Title

Microsoft PowerPoint - es-arduino-lecture-03

ADP-2480

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

Microsoft Word - logic2005.doc

Microsoft PowerPoint - ch07 - 포인터 pm0415

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

11장 포인터

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

슬라이드 1

슬라이드 1

Microsoft PowerPoint - chap10-함수의활용.pptx

1

PowerPoint 프레젠테이션

<C6F7C6AEB6F5B1B3C0E72E687770>

02 C h a p t e r Java

DE1-SoC Board

Microsoft PowerPoint - Chapter_04.pptx

2007_2_project4

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

(Asynchronous Mode) ( 1, 5~8, 1~2) & (Parity) 1 ; * S erial Port (BIOS INT 14H) - 1 -

Microsoft PowerPoint - 09-CE-14-리스트콤보박스

개요 1. 후킹이란? 후킹의정의.. 2 후킹의종류 2 앞으로 후킹프로그램을위한사전지식들 Window 에서 data 입력과정.. 3 DLL ( Dynamic Link Library ).. 4 메시지후킹을위해필요한지식들 5 3. 후킹프로그램제작에필요한 API

Microsoft PowerPoint - 09-CE-25-오목게임

Transcription:

Win32 API Windows Programming 1 http://idb.korea.ac.kr DB & Mining LAB. Korea Univ. 최종업데이트 : 2012. 08. 14 1

컴퓨터시스템의주요구성요소 2 2

컴퓨터하드웨어구성 Fetch : 메인메모리에저장되어있는명령어를 CPU 로 Decode : 컨트롤유닛에의해분석 Execution : ALU 에의해연산 레지스터 : 실행의중간결과나적은양의자료를임시로저장하는장치 CPU 내부의레지스터 : 프로그램카운터 (Program Counter), 명령어레지스터 (Instruction Register), 기억장치주소레지스터 (Memory Address Register), 기억장치버퍼레지스터 (Memory buffer Register), 입출력주소레지스터 (I/O Address Register), 입출력버퍼레지스터 (I/O Buffer Register) 버스 : 컴퓨터에서두개혹은그이상의장치들을연결하는공유전송매체 - 주소버스 : 데이터가읽혀지거나쓰여질기억장소의주소를전송 - 데이터버스 : 모듈들사이의데이터전송통로 - 제어버스 : 데이터버스와주소버스의사용을제어하는신호들을전송. Ex) 기억장치읽기 / 쓰기, I/O 읽기 / 쓰기, 신호전송확인 (transfer acknowledge), 버스요구 (bus request), 버스승인 (bus grant) 인터럽트요구, 확인, 등등 3 3

프로세스란? 운영체제 : 멀티프로세스 (Multi-Process) 프로세스란것이여러개존재 인터넷익스플로러아이콘을클릭 실행파일 iexplorer.exe 라는프로그램실행된것 익스플로러창은프로세스이다. 아이콘을다시클릭하면또다른익스플로러창이뜨고, 2번째프로세스생성됨 프로세스스케줄링 4 4

윈도우프로그래밍 API(Application Programming Interface) Windows System Call SDK(Software Development Kit ) 윈도우프로그램의작성에사용할수있는 C 함수라이브러리 모든윈도우프로그래밍환경에서사용가능 MFC(Microsoft Foundation Class) Visual C++ Class Library RAD(Rapid Application Development) Visual Basic, PowerBuilder, Delphi 실행속도느리고, 실행파일큼 5

윈도우프로그래밍동작방식 메시지 (Message) 메시지큐 (Message Queue) 메시지루프 (Message Loop) 윈도우프로시저 (Window Procedure) 6

메시지 윈도우에발생하는모든사건 WM_CREATE, WM_DESTROY, WM_MOUSEMOVE, WM_KEYDOWN. winuser.h 에정의 각윈도우에어떤사건이발생하는지를감시하여이를메시지로만들어내는것은기본적으로운영체제의책임이다 메시지가발생하면메시지는해당윈도우가속한프로그램의메시지큐로들어간다 7

메시지큐 하나의프로그램에하나의메시지큐할당 윈도우에사건이발생하면운영체제는이를메시지로만들어 발생순서대로메시지큐에넣는다 8

메시지루프 메시지큐에있는메시지를읽어서윈도우프로시저로전송하는루프 MSG msg; while(getmessage(&msg,null,0,0)) { TransLateMessage(&msg); // 키보드메시지변환 } DispatchMessage(&msg); // 윈도우프로시져로메시지전달 9

윈도우프로시져 메시지에응답하여처리하는함수 LONG APIENTRY WinProc // 윈도우프로시저이름 (HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { switch (message) { case 메시지1 :... break; case 메시지2 :... break;... default : return DefWindowProc(hWnd, message, wparam, lparam); } return 0; } 10

윈도우프로그램동작원리 운영체제 응용프로그램 메시지큐 } while(getmessage( )) {. 메시지를큐에서읽음 DispatchMessage( )... 메시지를처리할프로시저에전달 switch(msg) switch(msg) { {. } } 11

데이터타입 기존의타입들을 typedef 문으로재정의 BOOL: Boolean value. LPSTR: 32-bit pointer to a character string. UINT: 16-bit unsigned integer on Windows versions 3.0 and 3.1; a 32- bit unsigned integer on Win32. WORD: 16-bit unsigned integer. DWORD: 32-bit unsigned integer or the address of a segment and its associated offset. LONG: 32-bit signed integer. WPARAM: value passed as a parameter to a window procedure or callback function: 16 bits on Windows versions 3.0 and 3.1; 32 bits on Win32. LPARAM: 32-bit value passed as a parameter to a window procedure or callback function. HANDLE: Handle of an object, UINT. HWND: Handle of a window., UINT. HINSTANCE: Handle of an instance, UINT 12

윈도우에서의출력방법 디바이스에비의존적 (device-independent) 출력하고자하는장치의종류에따라출력방법이달라지지않음 GDI(Graphic Device Interface) 어떤디바이스에든지출력하는데사용되는함수들 13

윈도우에서의출력방법 Win32 API 응용프로그램 G D I 디바이스드라이브 실제출력장치 윈도우운영체제에서의출력 14

디바이스컨텍스트 윈도우운영체제에서출력대상을지칭 논리적으로볼때붓과펜, 팔레트, 종이 ( 여기서는비트맵에해당 ), 폰트등의그림을그리기위한도구의집합 윈도우화면출력절차 화면에대한디바이스컨텍스트핸들을구함 BeginPaint(), GetDC() 함수 GDI를이용해원하는출력모든출력장치에동일 디바이스컨텍스트제거 EndPaint()(BeginPaint() 로디바이스컨텍스트를얻은경우 ) ReleaseDC()(GetDC() 로디바이스컨텍스트를얻은경우 ) 15

윈도우에서의출력절차 출력할장치의디바이스컨텍스트핸들을얻는다. HDC hdc = GetDC(hWnd); GDI로앞에서얻은핸들에출력을행한다. TextOut(hDC,0,0, Hello,5); LineTo(hDC,100,100); : 디바이스컨텍스트를제거한다. ReLeaseDC(hWnd,hDC); 16

WM_PAINT 메시지처리 예제 - Hello, everybody case WM_PAINT: HDC hdc; PAINTSTRUCT ps; hdc = BeginPaint(hWnd, &ps); TextOut(hDC, 10, 10, "Hello, everybody", 16); EndPaint(hWnd, &ps); break; // 비교 : C 언어였다면, printf( Hello, everybody ); 17

BeginPaint() HDC BeginPaint( HWND hwnd, LPPAINTSTRUCT lppaint ); PAINTSTRUCT structure typedef struct tagpaintstruct { // ps HDC hdc; // Identifies the display DC to be used for painting. BOOL ferase; // Specifies whether the background must be erased. RECT rcpaint; // specifies the upper left and lower right corners of the rectangle in which the painting is requested. BOOL frestore; // Reserved; used internally by Windows. BOOL fincupdate; // Reserved; used internally by Windows. BYTE rgbreserved[32]; // Reserved; used internally by Windows. } PAINTSTRUCT; 18

TextOut(), EndPaint() BOOL TextOut( HDC hdc, // handle of device context int nxstart, // x-coordinate of starting position int nystart, // y-coordinate of starting position LPCTSTR lpstring, // address of string int cbstring // number of characters in string ); BOOL EndPaint( HWND hwnd, // handle to window CONST PAINTSTRUCT *lppaint // pointer to structure for paint data ); 19

GDI(Graphic Device Interface) 어떤디바이스에든지출력하는데사용되는함수들 첫번째인자는디바이스컨텍스트에대한핸들 GDI 의출력영역은어디까지나사용자영역안 디바이스컨텍스트의속성관련함수 도형관련출력함수 텍스트관련출력함수 맵핑모드관련함수 그림도구변경함수 20

WM_PAINT 메시지 윈도우운영체제에서화면복구시사용 1 2 1 2 1 2 1 번윈도우에의해가 려졌던 2 번윈도우가 클릭된다. 가려졌던영역이일단 WM_ERASEBKGND 메시지에의해지워진다. 윈도우에서의화면복구 WM_PAINT 메시지에 의해가려졌던영역이 복구된다. 21

WM_PAINT 메시지 WM_PAINT 메시지에서화면복구 디바이스컨텍스트는 BeginPaint 함수사용하여구함그이외에는 GetDC 사용 BeginPaint 함수의두번째인자에복구되어야할영역을지정 case WM_PAINT: HDC hdc; PAINTSTRUCT ps; hdc = BeginPaint(hWnd, &ps); // ps.rcpaint에복구영역의좌표가들어있다. // 이부분만딱그려줄수있다면가장이상적이다. EndPaint(hWnd, &ps); 22