Microsoft PowerPoint - hci2-lecture1.ppt
|
|
- 애리 제갈
- 6 years ago
- Views:
Transcription
1 Overview 윈도우프로그래밍기초 윈도우운영체제와윈도우응용프로그램의특징이해 SDK 응용프로그램작성과정, 기본구조, 동작원리이해 MFC 응용프로그램작성과정, 기본구조, 동작원리이해 HCI Programming 2 (321190) 2008년가을학기 9/16/2008 박경신 2 Windows.NET 구조적프로그램에서객체지향프로그램으로 SDK(Software Development Kit): 운영체제가응용프로그램에제공하는서비스로 C언어함수의집합형태 MFC(Microsoft Foundation Class): SDK를객체지향적으로포장 ATL(Active Template Library): 분산환경컴포넌트개발 윈도우운영체제특징 그래픽사용자인터페이스 (Graphical User Interface, GUI) 일관성있는사용자인터페이스 4
2 윈도우운영체제특징 메시지구동구조 (Message-driven Architecture) 윈도우시스템메시지큐 이벤트발생 응용프로그램메시지큐 #3 대기 처리 윈도우운영체제특징 멀티태스킹 (Multi-Tasking) 하나의윈도즈시스템에서여러개의응용프로그램을수행 응용프로그램사이의상호작용가능 멀티스레딩 (Multi-Threading) 하나의응용프로그램에여러개의실행흐름을생성 장치에독립적 장치드라이버 (Device Driver) 에의해주변장치들을제어 응용프로그램메시지큐 #2 처리 응용프로그램메시지큐 #1 5 6 윈도우운영체제 윈도우시스템구성모듈 구분 Win32 API 역할 커널모듈 KERNEL32.DLL 윈도우시스템의주요부분으로메모리관리, 파일입출력, 프로그램의로드와실행등운영체제의기본기능수행 윈도우운영체제 & 윈도우응용프로그램 Windows Application Program Windows Operating System (Win32 API) GDI32.DLL USER32.DLL KERNEL32.DLL GDI 모듈 사용자인터페이스모듈 GDI32.DLL USER32.DLL 화면이나프린터와같은장치의출력을관리. ( 펜, 브러쉬, 폰트, 비트맵, 팔레트등관리 ) 윈도우, 다이얼로그, 메뉴, 커서, 아이콘등과같은사용자인터페이스객체들을관리 display.drv printer.drv keyboard.drv mouse.drv Device Driver 7 Hardware 8
3 윈도우응용프로그램특징 API 호출문집합 API(Application Programming Interface) - 윈도우운영체제가응용프로그램을위해제공하는각종함수집합 응용프로그램 call API#1 call API#2 call API#3 call API#4 call API#n 9 윈도우응용프로그램특징 메시지핸들러집합 메시지핸들러 (Message Handler) - 메시지를받았을때동작을결정하는코드 키보드, 마우스, 메뉴, 등등 윈도우프로시저 (Window Procedure) 이러한메시지핸들러의집합 응용프로그램 메시지핸들러 #1 메시지핸들러 #2 메시지핸들러 #3 메시지핸들러 #4 메시지핸들러 #5 메시지핸들러 #6 윈도우프로시저 : 메시지핸들러집합 10 윈도우응용프로그램특징 실행파일과 DLL 집합 DLL(Dynamic-Link Library): 프로그램이실행중에호출할수있는함수 ( 코드 ) 와리소스 윈도우응용프로그램특징 장치독립적 윈도우시스템의 API를사용하여간접적으로주변장치들을제어응용프로그램 API 장치드라이버주변장치 응용프로그램 실행파일 DLL #1 DLL #2 DLL #3 DLL #4 DLL #
4 윈도우응용프로그램개발도구 SDK (Software Development Kit) C 언어로윈도우 API 를직접호출해서프로그램을구현 예, WIN32 API 장점 API 를직접다루기때문에세부적인제어가가능하고, 윈도우운영체제가제공하는모든기능을사용할수있다. 생성코드의크기가작고속도가빠르다. 단점 생산성이낮다. 윈도우응용프로그램개발도구 RAD (Rapid Application Development) 시각적으로화면을디자인하고코드를추가하는방법으로프로그램을빠르게개발 예, Visual Basic, Delphi 장점 생산성이높다. 단점 일반적으로생성코드의크기가크고실행속도가느리다. 운영체제가제공하는모든기능을활용한세부적인제어가어렵다. RAD 예 -Visual Basic 윈도우응용프로그램개발도구 클래스라이브러리 (Class Library) 윈도우응용프로그램개발에필수적인기능을객체지향언어를이용하여클래스로제공 예, MFC (Microsoft Foundation Class Library), 볼랜드 OWL (Object Windows Library) 장점 SDK보다생산성이높다. RAD보다생성코드의크기가작고실행속도가빠르다. 단점 초기학습에필요한기간이길다. 객체지향언어, C++ 클래스라이브러리구조와기능, 각클래스의관계파악 윈도우응용프로그램, 윈도우시스템, 도구 Application Program ( 메모장 ( 메모장,, 계산기계산기..)..) MFC MFC (C++ (C++ class class library) Win32 Win32 API API (C (C library) Operating System(Windows XP, XP,..)..) Device Device Driver Driver (drv, (drv, dll, dll,..)..) H/W H/W (monitor, printer, keyboard,..)..) 15 16
5 Win32 SDK 윈도우프로그램구조 WinMain 함수 윈도우클래스구조정의및등록 윈도우클래스 (WNDCLASS) - 윈도우기본틀에대한정보 ( 배경화면, 커서모양, 아이콘, 메뉴등 ) 을정의하기위한구조체 메인윈도우생성및출력 윈도우클래스로부터인스턴스생성 메시지루프 윈도우시스템으로부터들어오는메시지를분석하고처리 메시지큐에서메시지를하나씩꺼내어처리하기위한반복문 응용프로그램이종료될때까지반복 Event & Message Event 사용자의물리적조작에의해발생 ( 마우스클릭, 키보드입력 ) 윈도우시스템, 응용프로그램자체에서발생 Message 이벤트발생시윈도우시스템이감지하여메시지로변환 윈도우시스템은해당응용프로그램으로메시지전달 메시지는각이벤트에대한표준화된상수값 winuser.h 에정의 WinProc 함수 윈도우시스템으로부터받은메시지를처리하는함수 윈도우시스템에서호출하는함수 (call back) Handle 사용중인객체를식별하는고유번호 (32비트정수형 ) 윈도우시스템에서부여데이터타입의미 Instance 인스턴스는실제메모리상에할당된객체 윈도우프로그램에는코드영역에대한모듈인스턴스와데이터영역에대한데이터인스턴스존재 HINSTANCE HWND HDC HCURSOR HICON HMENU 프로그램에대한핸들윈도우에대한핸들디바이스컨텍스트에대한핸들커서에대한핸들아이콘에대한핸들메뉴에대한핸들 Module instance Data instance1 Data instance2 19 Memory 20
6 Device Context 출력에필요한정보를위한구조체 출력정보 : 폰트, 색상, 무늬, 굵기, 출력방법등 출력장치를제어하는 GDI (Graphic Device Interface) 함수호출시사용 //DC 사용예 Resource 사용자인터페이스를구성하는자원들의정적데이터 메뉴, 아이콘, 커서, 다이얼로그등 리소스스크립트 (Resource Script) 에의해정의 (.RC) 리소스는프로그램코드와분리하여작성되며자체컴파일 (RC.exe) 과정으로생성된리소스파일 (.RES) 은링크시통합 HDC hdc= getdc(hwnd); // 현재윈도우로부터 DC 얻어옴 // 각종출력문 *.h *.cpp *.obj TextOut(hdc, 100,100, Beautiful world, 20); // 문자열출력 Rectangle(hdc, 30,40,60,70); // 사각형그리기 LineTo(hdc, 0, 200); // 라인그리기 ReleaseDC(hWnd, hdc) //DC 해제 21 *.ico *.bmp *.rc resource.h *.res *.exe 22 HelloSDK 예제작성 프로젝트생성 HelloSDK 예제작성 1 단계옵션설정 23 24
7 HelloSDK 예제작성 1 단계옵션설정 HelloSDK 예제작성 소스파일추가 HelloSDK 예제작성 코드입력 HelloSDK 예제작성 코드입력 #include <windows.h> // WinMain( ) 함수에서참조하므로함수원형을선언한다. LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); 27 int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) // 윈도우클래스를초기화하고운영체제에등록한다. wndclass.style = CS_HREDRAW CS_VREDRAW; wndclass.lpfnwndproc = WndProc; wndclass.cbclsextra = 0; wndclass.cbwndextra = 0; wndclass.hinstance = hinstance; 28
8 HelloSDK 예제작성 HelloSDK 예제작성 wndclass.hicon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hcursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrbackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszmenuname = NULL; wndclass.lpszclassname = "HelloClass"; if(!registerclass(&wndclass)) return -1; // 윈도우를생성하고화면에보이게한다. hwnd = CreateWindow("HelloClass", "HelloSDK Application", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinstance, NULL); ShowWindow(hwnd, ncmdshow); UpdateWindow(hwnd); 29 // 메시지대기열에서메시지를하나씩꺼내처리한다. while(getmessage(&msg, NULL, 0, 0) > 0) TranslateMessage(&msg); DispatchMessage(&msg); return msg.wparam; LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) HDC hdc; PAINTSTRUCT ps; char *str = "Hello, SDK"; 30 HelloSDK 예제작성 HelloSDK 예제작성 // 메시지종류에따라응용프로그램이적절히처리한다. switch(message) case WM_CREATE: return 0; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); TextOut(hdc, 100, 100, str, lstrlen(str)); EndPaint(hwnd, &ps); return 0; case WM_LBUTTONDOWN: MessageBox(hwnd, " 마우스를클릭했습니다.", " 마우스메시지 ", MB_OK); return 0; 31 case WM_DESTROY: PostQuitMessage(0); return 0; // 응용프로그램이처리하지않으면윈도우운영체제가처리한다. return DefWindowProc(hwnd, message, wparam, lparam); 32
9 HelloSDK 예제작성 프로젝트설정변경 HelloSDK 예제 F7 (Build Solution) -> F5 (Start Debugging) 실행화면 HelloSDK 예제분석 헤더파일 윈도우 API 함수의원형 Data type, 구조체, MACRO 상수들이선언 HelloSDK 예제분석 메인함수 WinMain WinMain() 프로그램을시작하는시작점 windef.h 안에 #define APIENTRY WINAPI라고지정되어있음 #include <windows.h> int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) 35 36
10 HelloSDK 예제분석 메인함수 WinMain HINSTANCE 는 Process ID ( 즉, Instance Handle) hinstance Win32 프로그램이실행될때시작되는주소값을가지고있는포인터변수 리소스를로드하는함수들이이주소값을참조해서리소스를참조 메모장을 2 개실행하는예 같은프로그램이지만할당되는 hinstance 는다름. 각각고유의값인 hinstance 로구분 hprevinstance 16-bit 윈도우의잔재로사용하지않음. NULL 처리 HelloSDK 예제분석 메인함수 WinMain LPSTR 는 32-bit pointer to a character string ( 즉, char *) lpcomline Command Line 명령행인자를담고있는문자열 HelloSDK TEST1.TXT TEST2.TXT 처럼프로그램을실행하면, lpcomline 은 TEST1.TXT TEST2.TXT 값을가짐 ncmdshow 프로그램이시작될때윈도우모양 ( 최대화면, 아이콘표시등 ) 결정 윈도우의최대, 최소, 정상상태로실행 ShowWindow() 함수호출시사용 int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) 37 int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) 38 HelloSDK 예제분석 HelloSDK 예제분석 메인함수 WinMain HWND Win32 프로그램안에서생성되거나사용되는모든윈도우를구별하거나사용하는데쓰임 hinstance가프로그램에하나씩할당하는반면, HWND는프로그램안의윈도우를다루기위하여다수의 HWND가존재 WNDCLASS 윈도우를생성하는데필요한다양한정보를담고있는구조체 CreateWindow() 함수를사용하기전에윈도우클래스를커널 (kernel) 에등록 int APIENTRY WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow) HWND hwnd; MSG msg; 윈도우클래스초기화와등록 WNDCLASS GetStockObject() 이용 StockObject 은윈도우가기본적으로제공해주는 GDI (Graphic Device Interface) object. 주로브러쉬와펜이사용됨. wndclass.style = CS_HREDRAW CS_VREDRAW; wndclass.lpfnwndproc = WndProc; // 윈도우프로시저함수주소정의 wndclass.cbclsextra = 0; wndclass.cbwndextra = 0; wndclass.hinstance = hinstance; wndclass.hicon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hcursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrbackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszmenuname = NULL; wndclass.lpszclassname = "HelloClass"; if(!registerclass(&wndclass)) return -1; WNDCLASS wndclass; 39 40
11 HelloSDK 예제분석 윈도우생성 CreateWindow 윈도우핸들 = CreateWindow( 지정된클래스이름, 윈도우캡션바에표시되는문자열, 윈도우스타일, 윈도우수평위치, 윈도우수직위치, 윈도우폭, 윈도우높이, 부모윈도의핸들, 메뉴핸들, 인스턴스핸들, WM_CREATE 메시지가윈도우프로시저에보내질때의 parameter); hwnd = CreateWindow("HelloClass", "HelloSDK Application", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hinstance, NULL); ShowWindow(hwnd, ncmdshow); // 윈도우가화면에나타나게함 UpdateWindow(hwnd); // 윈도우프로시저가 WM_PAINT 메시지를처리하게함 HelloSDK 예제분석 메시지루프 메시지대기열 (Message Queue) 에서메시지를하나씩꺼내서처리 GetMessage - 메시지관리를위한구조체 Message Queue 에서메시지하나를꺼내서메시지변수에저장 Message 가 WM_QUIT 이면 0 을 return 하고 while loop 종료 GetMessage( message 관리구조체, 메시지핸들, 최소, 최대 ) TranslateMessage Keyboard 관련메시지를처리 DispatchMessage 해당메시지를 Window procedure 에보냄 while(getmessage(&msg, NULL, 0, 0) > 0) TranslateMessage(&msg); DispatchMessage(&msg); return msg.wparam; HelloSDK 예제분석 윈도우프로시저 WndProc 윈도우메시지를처리하는핵심함수 LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) hwnd 윈도우핸들. 어느윈도우가 window procedure 를호출했는지구분 message 구체적인메시지종류, WM_ 으로시작 wparam, lparam 메시지종류에따라부가적인정보전달 CALLBACK OS 나컴파일러환경에따라서파라미터나리턴값을넘겨주고넘겨받는방식을정하는 MACRO LRESULT long type 과동일 43 HelloSDK 예제분석 윈도우프로시저 WndProc LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) HDC hdc; PAINTSTRUCT ps; char *str = "Hello, SDK"; // 메시지종류에따라응용프로그램이적절히처리한다. switch(message) case WM_CREATE: return 0; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); 44
12 HelloSDK 예제분석 HelloSDK 예제분석 요약 TextOut(hdc, 100, 100, str, lstrlen(str)); EndPaint(hwnd, &ps); // Device Context 해제 return 0; case WM_LBUTTONDOWN: MessageBox(hwnd, " 마우스를클릭했습니다.", " 마우스메시지 ", MB_OK); return 0; case WM_DESTROY: PostQuitMessage(0); // 메시지큐에 WM_QUIT가들어간다 return 0; // 응용프로그램이처리하지않으면윈도우운영체제가처리한다. return DefWindowProc(hwnd, message, wparam, lparam); 시스템메시지큐 이벤트발생 응용프로그램메시지큐 #3 응용프로그램메시지큐 #2 응용프로그램메시지큐 #1 응용프로그램 #1 메시지루프 윈도우프로시저 메시지핸들러 #1 메시지핸들러 #2 메시지핸들러 #3 DefWindowProc WIN32 API 와 MFC MFC Win32 API 를이용해서프로그램을작성할경우코드의길이가매우길어지게되며, 어떠한부분에있어서는모든프로그래머들이반복적으로작성해야하는부분도있음. 이러한단점을보완하기위해서 Microsoft 의수많은개발자들이클래스기반의견고한코드를클래스화해서만든라이브러리임. C API C++ Class, OOP MFC MFC (Microsoft Foundation Class) SDK (Windows API) 의 WinMain() 함수의기능과 Window Procedure 기능을적절히분할하여 2 개의클래스제공 MFC CWinApp CFrameWnd 응용프로그램의초기화코드메시지루프, 종료코드등을제공 Frame window 의기능정의 47 응용프로그램자신만의특징을갖기위하여위의 2 클래스를그대로사용하지않고, OOP 의 inheritance 기능을이용 48
13 HelloMFC 예제작성 프로젝트생성 HelloMFC 예제작성 1 단계옵션설정 HelloMFC 예제작성 1 단계옵션설정 HelloMFC 예제작성 소스파일추가 51 52
14 HelloMFC 예제작성 코드입력 HelloMFC 예제작성 코드입력 #include <afxwin.h> // 클래스선언부 class CHelloApp : public CWinApp public: virtual BOOL InitInstance(); ; class CMainFrame : public CFrameWnd public: CMainFrame(); HelloMFC 예제작성 HelloMFC 예제작성 protected: afx_msg void OnPaint(); afx_msg void OnLButtonDown(UINT nflags, CPoint point); DECLARE_MESSAGE_MAP() ; // 응용프로그램객체 CHelloApp theapp; // 클래스정의부 BOOL CHelloApp::InitInstance() m_pmainwnd = new CMainFrame; m_pmainwnd->showwindow(m_ncmdshow); m_pmainwnd->updatewindow(); return TRUE; CMainFrame::CMainFrame() Create(NULL, "HelloMFC Application"); void CMainFrame::OnPaint() char *msg = "Hello, MFC"; CPaintDC dc(this); 55 56
15 HelloMFC 예제작성 HelloMFC 예제작성 프로젝트설정변경 dc.textout(100, 100, msg, lstrlen(msg)); void CMainFrame::OnLButtonDown(UINT nflags, CPoint point) MessageBox(" 마우스를클릭했습니다.", " 마우스메시지 "); // 메시지맵 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_PAINT() ON_WM_LBUTTONDOWN() END_MESSAGE_MAP() HelloMFC 예제작성 HelloMFC 예제분석 F7 (Build Solution) -> F5 (Start Debugging) 실행화면 헤더파일 #include <afxwin.h> 클래스선언부 SDK 에서 #include <windows.h> 를 MFC 에서는 #include <afxwin.h> 로 class CHelloApp : public CWinApp public: virtual BOOL InitInstance(); ; 59 60
16 HelloMFC 예제분석 클래스선언부 class CMainFrame : public CFrameWnd public: CMainFrame(); protected: afx_msg void OnPaint(); afx_msg void OnLButtonDown(UINT nflags, CPoint point); DECLARE_MESSAGE_MAP() ; HelloMFC 예제분석 응용프로그램객체 모든 MFC 프로그램은 CWinApp 클래스에서하나의클래스를파생하고이클래스로부터하나의객체를전역변수로생성 WinMain 함수는 MFC 에서제공 CHelloApp theapp; MFC 응용프로그램의구조 하나의응용프로그램객체 여러종류의클래스선언및정의 HelloMFC 예제분석 클래스정의부 숨겨진 WinMain() 은프로그램이시작되면처음으로 InitInstance 함수를호출 초기화에사용 Virtual 함수로선언해야함 재정의하지않으면 CWinApp 에있는 InitInstance 가수행됨 ShowWindow() 에는윈도우핸들이존재하지않음 윈도우핸들을내부에숨기고있기때문에 BOOL CHelloApp::InitInstance() m_pmainwnd = new CMainFrame; m_pmainwnd->showwindow(m_ncmdshow); m_pmainwnd->updatewindow(); return TRUE; Class CHelloApp: public CWinApp public: virtual BOOL InitInstance(); HelloMFC 예제분석 클래스정의부 SDK 의 CreateWindow() 함수에상응하는역할 CMainFrame::CMainFrame() Create(NULL, "HelloMFC Application"); // 윈도우생성 ; 63 64
17 HelloMFC 예제분석 HelloMFC 예제분석 클래스정의부 void CMainFrame::OnPaint() char *msg = "Hello, MFC"; CPaintDC dc(this); // SDK 에서 WM_PAINT 역할 메시지맵 윈도우메시지와해당메시지핸들러를연결시키는 MFC 방법 ON_WM_PAINT() WM_PAINT 와 OnPaint() 를연결 ON_WM_LBUTTONDOWN() WM_LBUTTONDOWN 과 OnLButtonDown() 를연결 dc.textout(100, 100, msg, lstrlen(msg)); // SDK 에서 WM_LBUTTONDOWN 역할 void CMainFrame::OnLButtonDown(UINT nflags, CPoint point) MessageBox(" 마우스를클릭했습니다.", " 마우스메시지 "); BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) ON_WM_PAINT() ON_WM_LBUTTONDOWN() END_MESSAGE_MAP() HelloMFC 예제분석 숨겨진 MFC 의 WinMain WinMain( ) // MFC 의내부에숨겨진프로그램실행의시작점 // ptr 은포인터로서응용프로그램객체의주소값을가지고있다. ptr->initinstance( ); // 초기화 : 프레임윈도우객체를생성한다. // 프레임윈도우객체의생성자에서 // 실제윈도우가만들어진다. ptr->run( ); // 메시지루프 : 프레임윈도우에게메시지를보낸다. // 프레임윈도우가받은메시지의종류에따라 // 해당메시지핸들러가적절히호출된다. ptr->exitinstance( ); // 종료 : 각종청소작업을수행한다. 67 Coding Rules 변수표기법 의미있는단어의사용 멤버변수는 m_ 라는접두어추가 헝가리안표기법 접두어 b d h n p 또는 lp sz u w dw str clr 의미 BOOL 형변수 double 형변수 HANDLE 형변수 int 형변수 pointer 변수 NULL 문자로끝나는문자열 unsigned int 형변수 WORD(unsigned short 형변수 ) DWORD(unsigned long 형변수 ) CString 형변수 COLORREF m_lpszfilename m_ : 멤버변수 lp : 포인터변수 sz : 널로끝나는문자열 Filename: 파일이름
18 Windows Programming MSDN Reference 대표적인윈도우메시지 윈도우메시지 발생상황 메시지처리기 WM_CREATE WM_ACTIVATE WM_PAINT WM_MOUSEMOVE WM_COMMAND WM_LBUTTONDOWN WM_LBUTTONUP WM_LBUTTONDBLCILK WM_KEYDOWN WM_KEYUP WM_SIZE WM_MOVE WM_TIMER WM_DESTROY 윈도우가생성될때윈도우가활성화되거나비활성화될때윈도우가다시그려져야할때마우스커서가움직였을때사용자가메뉴등을명령으로내렸을때마우스왼쪽버튼을눌렀을때마우스왼쪽버튼을떼었을때마우스왼쪽버튼이더블클릭됐을때키보드가눌렸을때키보드가떼었을때윈도우의크기가변경되었을때윈도우가이동되었을때설정된타이머시간이다되었을때윈도우가없어질때 OnCreate OnActivate OnPaint OnMouseMove OnDestroy OnLButtonDown OnLButtonUp OnLButtonDblClk OnKeyDown OnKeyUp OnSize OnMove OnTimer OnDestroy 70 Windows API Reference MFC Reference 71 72
19 Practice HelloSDK 와 HelloMFC 프로그램을이용하여이름, 학과, 학번, 및자기소개를출력하는프로그램을작성하라 WM_PAINT 와 OnPaint 를비교한다 WM_LBUTTONDOWN 과 OnLButtonDown 를비교한다
<4D F736F F F696E74202D203031C0E520C0A9B5B5BFEC20C7C1B7CEB1D7B7A1B9D620B1E2C3CA5FBFB5B3B2C0CCB0F8B4EB205BC8A3C8AF20B8F0B5E55D>
01 : 윈도우프로그래밍기초 학습목표 윈도우운영체제와윈도우응용프로그램의특징을이해한다. SDK 응용프로그램작성과정, 기본구조, 동작원리를이해한다. MFC 응용프로그램작성과정, 기본구조, 동작원리를이해한다. 비주얼 C++ 개발환경사용법을익힌다. 윈도우운영체제특징 (1/3) 그래픽사용자인터페이스 1 윈도우운영체제특징 (2/3) 메시지구동구조 이벤트발생... 대기
More informationMicrosoft PowerPoint - hci2-lecture1.ppt
Overview 윈도우프로그래밍기초 윈도우운영체제와윈도우응용프로그램의특징이해 SDK 응용프로그램작성과정, 기본구조, 동작원리이해 MFC 응용프로그램작성과정, 기본구조, 동작원리이해 HCI Programming 2 (321190) 2007년가을학기 9/13/2007 박경신 2 윈도우운영체제특징 그래픽사용자인터페이스 (Graphical User Interface,
More informationMFC 프로그래밍
윈도우프로그래밍 Visual C++ 2010 MFC Programming 1 장. 윈도우프로그래밍기초 윈도우운영체제의특징 그래픽사용자인터페이스 시스템메뉴타이틀바메뉴최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 상태표시줄 스크롤바 윈도우운영체제의특징 메시지구동구조 윈도우운영체제의특징 멀티태스킹과멀티스레딩 멀티태스킹 (Multitasking) 운영체제가여러개의응용프로그램을동시에실행
More information1장 윈도우 프로그래밍 들어가기
1 장 윈도우프로그래밍들어가기 김성영교수 금오공과대학교 컴퓨터공학부 예제 다음프로그램은언제종료할까? #include #define QUIT -1 int Func(void) int i; cout > i; return i; void main(void) int Sum = 0, i; cout
More information5장 MFC기반 다지기
5 장 MFC 기반다지기 김성영교수 금오공과대학교 컴퓨터공학부 들어가기 (1) pp.132 ~ 138 비주얼스튜디오에서 MFC 어플리케이션작성 참조 시스템메뉴 메뉴 최소 / 최대 / 닫기버튼 툴바 대화상자 클라이언트영역 (Client Area) 스크롤바 상태표시줄 2 들어가기 (2) 3 들어가기 (3) 4 들어가기 (4) 솔루션탐색기확인 WinMain() 함수가없다?
More informationMicrosoft PowerPoint - 04windows.ppt
Game Programming I Windows 프로그래밍 (1) March 27, 2006 목표 윈도우프로그래밍에서이용되는이벤트구동프로그래밍모델의이해 Direct3D 를이용하는윈도우어플리케이션의작성을위한최소한의코드이해 윈도우 (Win32) 어플리케이션 Direct3D API ( 어플리케이션프로그래밍인터페이스 ) 를이용하기위해필요 Win32 API 를이용해작성
More information윈도우 프로그래밍
Windows Programming 2013. 3 출처 : 인터넷에서수집한 PT 자료 1. Overview Getting Started (1) 관련도서 Visual C++/API 프로젝트따라하기, 오진환, 컴스페이스 Programming Windows, Charles Petzold, Microsoft Press Windows application Programming
More informationPowerPoint 프레젠테이션
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
More informationChapter 1. MFC 시작하기
Chapter 1. MFC 시작하기 1. MFC(Microsoft Foundation Class) 개요 2. Visual Studio 2015 프로그램설치하기 3. 마우스클릭프로그램작성 4. 그림그리기프로그램작성 5. 마우스좌표값구하기프로그램작성 1 1.1. MFC 개요 2 1.1.1. C++ 언어 객체지향언어 (Object-Oriented Programming,
More information<33372DC0A9B5B5BFECC7C1B7CEB1D7B7A1B9D62E687770>
2010 학년도동계 계절수업시험문제지 출제위원 방송대김강현 학과명학번 - 성 명 감독관확인 ( 인 ) 교과목명 교과목코드 윈도우프로그래밍 3 7 출제범위 교재전체 ( 해당강의포함 ) 문항수 50 문항 [50 문항 2 점 =100 점 ] 유의사항 1. OMR 답안지및문제지인적사항표기는반드시컴퓨터용사인펜으로할것 2. 표기한답안은정정이일절불가하니답안표기에각별히유의할것
More informationMicrosoft PowerPoint - 09-CE-5-윈도우 핸들
순천향대학교컴퓨터학부이상정 1 학습내용 윈도우핸들 윈도우찿기 윈도우확인및제거 윈도우숨기기 윈도우포커스 윈도우텍스트 윈도우핸들 순천향대학교컴퓨터학부이상정 3 핸들 (handle) 윈도우에서구체적인어떤대상을구분하기위해지정되는고유의번호 32비트의정수값 핸들은운영체제가발급하고사용자가이값을사용 실제값이무엇인지는몰라도상관없음 윈도우, DC, 브러쉬등등 순천향대학교컴퓨터학부이상정
More information윈도우즈 프로그래밍
윈도우프로그래밍및실습 002. 윈도우프로그래밍의기본 DB & MINING LAB. Korea University since 2007. 09. 03 updated 2012. 08. 18 last updated 2015. 08. 25 이종욱 eastwest9@korea.ac.kr 1 Purpose of this chapter What is a Window programming
More information<312DBED5BACEBCD328B8D3B8AEB8BB2CB8F1C2F7292DBCF6C1A42E687770>
머 / 리 / 말 저자가 단계별로쉽게배우는 Visual C++ 6.0 책을출판한지도벌써 10년이지났습니다. 그동안많은대학에서교재로사용해주시면서많은교수님들과독자들의많은코멘트를받았습니다. 이제 Visual C++ 6.0은새로운운영체제에서호환성이떨어지고 Microsoft 사에서도더이상업그레이드를하지않고실행상의버그가수정되지않아사용상의많은문제점을가지고있었습니다. Visual
More information4S 1차년도 평가 발표자료
객체지향프로그래밍응용 Chap 2. 프로그램의뼈대 2012.09.17. 오병우 컴퓨터공학과금오공과대학교 윈도우프로그램각부분의명칭 타이틀바 메뉴 프레임윈도우오브젝트 메뉴오브젝트 도구모음 툴바오브젝트 스크롤바 클라이언트영역 뷰오브젝트 상태표시줄 상태바오브젝트 Department of Computer Engineering 2 Win32 Application API
More informationMicrosoft PowerPoint - hci2-lecture5-messagemap.ppt
Windows 와 C++ MFC Message Map HCI Programming 2 (321190) 2008년가을학기 10/14/2008 박경신 C++ 의다형성 (Polymorphsim) 기반클래스의어떤멤버함수를파생클래스에서재정의 (overriding) 하기위해서는기반클래스의그멤버함수가가상함수 (virtual function) 로정의되어야함 MFC 의 CWnd
More informationMicrosoft PowerPoint - chap02-C프로그램시작하기.pptx
#include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의
More information04장 메시지 처리 유형
4 장 메시지처리유형 김성영교수 금오공과대학교 컴퓨터공학부 메시지처리유형 윈도우에서발생하는이벤트에대응하는윈도우메시지를처리 2 장및 3 장의실습예제 자식윈도우에서발생한이벤트를부모윈도우에서처리 WM_COMMAND 메시지처리 실습 4.2 자식윈도우에서발생한사건유형을구분하여처리 Notification code 처리 실습 4.7 Notification code 의한계를극복하여처리
More information윈도우시스템프로그래밍
객체지향프로그래밍응용 Chap 4. 대화상자와컨트롤 (#1) 2013.09.27. 오병우 컴퓨터공학과금오공과대학교 Control 들을가진윈도우 Dialog 개요 사용자의입력을받기위한 Object 의집합 종류 프로그램수행도중사용자의입력이필요할때다이얼로그박스출력 다이얼로그박스는사용자로부터입력받은데이터를메인루틴에넘기고소멸 Modal Dialog Parent window
More information歯Lecture2.PDF
VISUAL C++/MFC Lecture 2? Update Visual C ++/MFC Graphic Library OpenGL? Frame OpenGL 3D Graphic library coding CLecture1View? OpenGL MFC coding Visual C++ Project Settings Link Tap Opengl32lib, Glu32lib,
More information[제1강] 텍스트를 입력하세요
제 8 강 MFC 프레임워크 (1) Visual C++ 프로그래밍 컴퓨터과학과 김강현교수 제 8 강의학습내용 MFC (Microsoft Foundation Class) 기본구조 MFC클래스들의계층구조윈도우프로그램과메시지 (Message) hwnd의위치 Visual C++ 에서정의된자료형 MFC 클래스살펴보기 MFC(Microsoft Foundation Class)
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationVisual C++의 개요
2.1 MFC 의개요 2.2 MFC 프로그램의구조 2.3 Visual C++ 의시작실습 2-1 Application Wizard 익히기 2.4 SDI 템플릿 2.5 MDI 템플릿 2.6 MFC 애플리케이션아키텍처실습 2-2 간단한 MFC 프로젝트만들기 MFC 의개요 MFC 윈도우애플리케이션을생성하기위해만들어진 C++ 클래스라이브러리 애플리케이션프레임워크를제공
More information임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과
임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationMicrosoft PowerPoint - CPP_chap3
3 장. 마우스와키보드메시지 1 1. 능동적입력받기와수동적입력받기 2 학습목표 이벤트위주로직개념을파악한다 메시지개념을파악한다 능동적입력받기 절차적로직프로그램에서입력받기 언제무엇을입력받을지는프로그램의절차적로직에서결정 예 : 텍스트모드 C 프로그램에서문자열을입력받는경우 수동적입력받기 이벤트위주로직프로그램에서입력받기 윈도우환경에서마우스나키보드입력은 Windows
More information윈도우즈 프로그래밍
윈도우프로그래밍및실습 003. 출력 DB & MINING LAB. Korea University 2 nd updated 2012. 08. 18 Last updated 2015. 08. 26 이종욱 eastwest9@korea.ac.kr 1 Purpose of this chapter How to show some information on your screen
More informationq 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2
객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가
More information<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>
게임엔진 제 4 강프레임리스너와 OIS 입력시스템 이대현교수 한국산업기술대학교게임공학과 학습내용 프레임리스너의개념 프레임리스너를이용한엔터티의이동 OIS 입력시스템을이용한키보드입력의처리 게임루프 Initialization Game Logic Drawing N Exit? Y Finish 실제게임루프 오우거엔진의메인렌더링루프 Root::startRendering()
More informationMicrosoft PowerPoint - 09-CE-7-선과 도형
순천향대학교컴퓨터학부이상정 1 학습내용 디바이스컨텍스트 WM_PAINT 선, 도형그리기 GDI 객체 펜, 브러쉬 순천향대학교컴퓨터학부이상정 2 디바이스컨텍스트 순천향대학교컴퓨터학부이상정 3 디바이스컨텍스트 (1) 윈도우즈에서화면출력 ( 텍스트출력과차이점 ) 화면을사용할수있는권한이제약 자신이차지하는영역에만그림을그릴수있다. 좌표를계산하는방법이다르다 자기의윈도우즈의좌표를기준으로출력
More informationChapter #01 Subject
Device Driver March 24, 2004 Kim, ki-hyeon 목차 1. 인터럽트처리복습 1. 인터럽트복습 입력검출방법 인터럽트방식, 폴링 (polling) 방식 인터럽트서비스등록함수 ( 커널에등록 ) int request_irq(unsigned int irq, void(*handler)(int,void*,struct pt_regs*), unsigned
More informationAPI - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어
메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -
More information1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a
6 장복사생성자 객체의생성과대입객체의값에의한전달복사생성자디폴트복사생성자복사생성자의재정의객체의값에의한반환임시객체 C++ 프로그래밍입문 1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y;
More information[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi
2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,
More informationPowerPoint Presentation
Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음
More informationMicrosoft PowerPoint - hci2-lecture3.ppt
Overview MFC 프로그램구조 HCI Programming 2 (321190) 2007년가을학기 10/1/2007 박경신 MFC 개요 MFC 발전과정과주요특징이해 MFC 구조 MFC 구성요소, 클래스계층도, 주요클래스 MFC 최상위클래스인 CObject 가제공하는서비스이해 MFC 가제공하는전역함수사용법 MFC 응용프로그램구조 MFC Application
More information유저영역후킹탐지시스템 팀 명 : D.N.F (Do Not Fishing) 지도교수 : 유승재교수님 팀 장 : 신동순 팀 원 : 서현찬이치목 중부대학교정보보호학과
유저영역후킹탐지시스템 팀 명 : D.N.F (Do Not Fishing) 지도교수 : 유승재교수님 팀 장 : 신동순 팀 원 : 서현찬이치목 2016. 05 중부대학교정보보호학과 목 차 1. 서론 2. 관련연구 2.1 IAT 후킹 2.2 PE 구조 3. 본론 3.1 유저영역후킹작성및실행 3.2 유저영역후킹탐지 4. 결론 5. 참고자료 6. 발표자료 1. 서론
More informationMicrosoft PowerPoint - hci2-lecture3.ppt
Overview MFC 프로그램구조 HCI Programming 2 (321190) 2008년가을학기 9/30/2008 박경신 MFC 개요 MFC 발전과정과주요특징이해 MFC 구조 MFC 구성요소, 클래스계층도, 주요클래스 MFC 최상위클래스인 CObject 가제공하는서비스이해 MFC 가제공하는전역함수사용법 MFC 응용프로그램구조 MFC Application
More informationMicrosoft PowerPoint - 09-CE-14-리스트콤보박스
순천향대학교컴퓨터학부이상정 1 학습내용 리스트박스컨트롤 다이얼로그와리스트박스 콤보박스컨트롤 순천향대학교컴퓨터학부이상정 2 리스트박스컨트롤 순천향대학교컴퓨터학부이상정 3 리스트박스컨트롤 사용자가선택할수있는항목들을여러개나열해두고선택할수있는컨트롤 윈도우클래스의이름은 "listbox" 생성예 hlist=createwindow(l"listbox",null,ws_child
More information쉽게 풀어쓴 C 프로그래밍
제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace
More information예제와 함께 배워보는 OllyDbg사용법
초보자를위한예제와함께 배워보는 OllyDbg 사용법 -1 부 - By Beist Security Study Group (http://beist.org) 요약 : 이문서는 Ollydbg 프로그램을이용하여 Reverse Engineering을하는방법에대해서다룬다. 초보자를위하여작성된문서이며예제와함께 Ollydbg의각기능에대해서알아본다. 주로기초적인내용을다루고있다.
More information1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할
15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p
More informationuntitled
MFC MFC MFC AppWizard 來 MFC MFC 類 了 類 Document/View MFC Visual C++ AppWizard MFC 不 力 亮 來 不 Document View 不 列 AppWizard View 類 CEditView 列 列 說 行 不 了 Document/View MFC Application Framework 靈 OLE Document
More information17장 클래스와 메소드
17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는
More informationDLL(Dynamic Linked Library)
제 11 장동적연결라이브러리 11.1 DLL 의링크 11.2 DLL 의종류 실습 11-1 Implicit 링킹을통한정규 DLL 달력만들기 실습 11-2 Explicit 링킹을통한정규 DLL 달력만들기 실습 11-3 확장 DLL 을통한주민등록번호조회 프로그램만들기 DLL(Dynamic Linked Library) DLL 이란? 동적연결라이브러리 프로그램내부에라이브러리가있는것이아니라따로독립적으로실행가능한파일
More informationC# Programming Guide - Types
C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든
More informationJAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각
JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.
More information<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>
2006 년 2 학기윈도우게임프로그래밍 제 8 강프레임속도의조절 이대현 한국산업기술대학교 오늘의학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용한다. FPS(Frame Per Sec)
More informationPowerPoint Presentation
객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean
More information2014 년정보보호졸업작품보고서 파일유출방지시스템 지도교수님 : 양환석교수님 팀명 : LKC Security 팀원 : 이호영, 김상우, 최유택 중부대학교정보보호학과
2014 년정보보호졸업작품보고서 파일유출방지시스템 지도교수님 : 양환석교수님 팀명 : LKC Security 팀원 : 이호영, 김상우, 최유택 2014. 5 중부대학교정보보호학과 목 차 1. 프로젝트설명 1 2. 연구계획 1 2.1 연구목적 1 2.2 연구방법 2 2.3 연구개요 2 2.4 연구구성도 3 3. 연구프로그램구축 5 3.1 주요소스 5 3.2 실행결과
More informationVISLAB 박제강 1. 시작하기전에영상관련알고리즘을개발하는과정에서작성한프로그램을테스트하고피드백하는작업은빈번하게발생한다. 이때기존콘솔 (Console) 형태로작성된프로그램의경우테스트작업을유동적으로조절할수없기때문에작업의효율이떨어진다. 반면 GUI(Graphical Use
VISLAB 박제강 1. 시작하기전에영상관련알고리즘을개발하는과정에서작성한프로그램을테스트하고피드백하는작업은빈번하게발생한다. 이때기존콘솔 (Console) 형태로작성된프로그램의경우테스트작업을유동적으로조절할수없기때문에작업의효율이떨어진다. 반면 GUI(Graphical User Interface) 형태로작성된프로그램은사용자가자신의의도를쉽게반영하고그결과를빠르게눈으로확인할수있다는장점이있다.
More informationPowerPoint 프레젠테이션
System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소
More information제8장 자바 GUI 프로그래밍 II
제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로
More informationJAVA PROGRAMMING 실습 08.다형성
2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스
More informationPowerPoint Template
16-1. 보조자료템플릿 (Template) 함수템플릿 클래스템플릿 Jong Hyuk Park 함수템플릿 Jong Hyuk Park 함수템플릿소개 함수템플릿 한번의함수정의로서로다른자료형에대해적용하는함수 예 int abs(int n) return n < 0? -n : n; double abs(double n) 함수 return n < 0? -n : n; //
More information슬라이드 1
정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함
More information1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과
1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information윈도우시스템프로그래밍
데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More informationMicrosoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]
Unix Process Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1 유닉스기반다중서버구현방법 클라이언트들이동시에접속할수있는서버 서비스를동시에처리할수있는서버프로세스생성을통한멀티태스킹 (Multitasking) 서버의구현 select 함수에의한멀티플렉싱 (Multiplexing)
More informationPowerPoint Presentation
Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section
More informationMicrosoft PowerPoint - ch07 - 포인터 pm0415
2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자
More informationMicrosoft PowerPoint - chap01-C언어개요.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 프로그래밍의 기본 개념을
More information초보자를 위한 C# 21일 완성
C# 21., 21 C#., 2 ~ 3 21. 2 ~ 3 21.,. 1~ 2 (, ), C#.,,.,., 21..,.,,, 3. A..,,.,.. Q&A.. 24 C#,.NET.,.,.,. Visual C# Visual Studio.NET,..,. CD., www. TeachYour sel f CSharp. com., ( )., C#.. C# 1, 1. WEEK
More information슬라이드 1
2007 년 2 학기윈도우게임프로그래밍 제 7 강프레임속도의조절 이대현 핚국산업기술대학교 학습내용 프레임속도의조절 30fps 맞추기 스프라이트프레임속도의조절 프레임속도 (Frame Rate) 프레임속도란? 얼마나빨리프레임 ( 일반적으로하나의완성된화면 ) 을만들어낼수있는지를나타내는척도 일반적으로초당프레임출력횟수를많이사용핚다. FPS(Frame Per Sec)
More informationPowerPoint Presentation
객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드
More information<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>
SAM4S Printer Driver Installer 달리명시하지않은한, 인쇄또는복사된문서는통제하지않는문서임 목 차 1. 1. WINDOWS DRIVER INSTALLER 설치 설치...... 2 2. 프린터추가...... 5 3. 프린터제거...... 19 4. 프린터추가 / 제거선택...... 21 5. 프로그램추가 / 제거...... 21 SHC- 11-01-
More informationA Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning
C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용
More informationMicrosoft PowerPoint - CSharp-10-예외처리
10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.
More information어댑터뷰
04 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adapter View) 커스텀어댑터뷰 (Custom Adatper View) 란? u 어댑터뷰의항목하나는단순한문자열이나이미지뿐만아니라, 임의의뷰가될수 있음 이미지뷰 u 커스텀어댑터뷰설정절차 1 2 항목을위한 XML 레이아웃정의 어댑터정의 3 어댑터를생성하고어댑터뷰객체에연결
More informationiii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.
Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:
More informationMicrosoft PowerPoint - CPP_chap1
Chap. 1 : C++ 언어및윈도우프로그래밍 = 강의핵심내용 = 1. C++ 프로그래밍언어소개 2. C++ 응용프로그래밍작성 3. 윈도우프로그래밍 1.1 C++ 프로그래밍언어소개 C++ 프로그래밍언어 Developed by B. Stroustrup at AT&T in the early 1980s. Superset of the C language commercially
More informationPowerPoint Presentation
public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +
More information<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >
10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절
More informationMicrosoft PowerPoint - C++ 5 .pptx
C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성
More information11장 포인터
Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함
More information개요 1. 후킹이란? 후킹의정의.. 2 후킹의종류 2 앞으로 후킹프로그램을위한사전지식들 Window 에서 data 입력과정.. 3 DLL ( Dynamic Link Library ).. 4 메시지후킹을위해필요한지식들 5 3. 후킹프로그램제작에필요한 API
개요 1. 후킹이란? 후킹의정의.. 2 후킹의종류 2 앞으로...2 2. 후킹프로그램을위한사전지식들 Window 에서 data 입력과정.. 3 DLL ( Dynamic Link Library ).. 4 메시지후킹을위해필요한지식들 5 3. 후킹프로그램제작에필요한 API 함수소개 SetWindowsHookEx 함수 5 UnhookWindowsHookEx 함수 5
More informationC++ Programming
C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator
More informationDesign Issues
11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance
More information<4D F736F F F696E74202D203039C0E520B4EBC8ADBBF3C0DA205BC8A3C8AF20B8F0B5E55D>
09: 대화상자 학습목표 대화상자편집기의사용법을익힌다. 모드형대화상자와비모드형대화상자의차이점을이해하고작성방법을익힌다. 대화상자기반응용프로그램의원리를이해하고작성방법을익힌다. 공통대화상자를다루는방법을배운다. 개요 (1/2) 대화상자 다양한컨트롤을포함하고있는일종의윈도우 사용자로부터입력을받거나정보를출력 1 개요 (2/2) 대화상자종류 모드형대화상자 대화상자를닫지않으면응용프로그램이더이상진행할수없다.
More information<4D F736F F F696E74202D203036C0E520BBE7BFEBC0DA20C0CEC5CDC6E4C0CCBDBA205BC8A3C8AF20B8F0B5E55D>
06: 사용자인터페이스 학습목표 메뉴명령을처리하고메뉴항목을적절하게갱신하는기법을익 힌다. 컨텍스트메뉴와시스템메뉴를다루는방법을익힌다. 툴바를생성하고사용하는방법을익힌다. 상태바를생성하고사용하는방법을익힌다. 메뉴용어 (1/6) 최상위메뉴 = 메뉴바 최상위메뉴 = 메뉴바 1 메뉴용어 (2/6) 메뉴항목 용어 의미 1 명령항목명령 (Command) 을수행하는메뉴항목.
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More informationBMP 파일 처리
BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)
More informationPowerPoint Presentation
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.
More informationFrama-C/JESSIS 사용법 소개
Frama-C 프로그램검증시스템소개 박종현 @ POSTECH PL Frama-C? C 프로그램대상정적분석도구 플러그인구조 JESSIE Wp Aorai Frama-C 커널 2 ROSAEC 2011 동계워크샵 @ 통영 JESSIE? Frama-C 연역검증플러그인 프로그램분석 검증조건추출 증명 Hoare 논리에기초한프로그램검증도구 사용법 $ frama-c jessie
More informationMicrosoft PowerPoint UI-Event.Notification(1.5h).pptx
To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View
More information슬라이드 1
한국산업기술대학교 제 4 강프레임리스너 (Frame Listener) 이대현교수 학습안내 학습목표 프레임리스너를이용하여게임루프를구현하는방법을이해한다. 오우거엔짂의키입력처리방식을이해한다. 학습내용 프레임리스너의개념프레임리스너를이용한게임캐릭터의이동캐릭터의이동속도조절 OIS 입력시스템을이용한키보드입력의처리 기본게임루프 Initialization Game Logic
More informationPowerPoint 프레젠테이션
실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3
More information슬라이드 1
핚국산업기술대학교 제 14 강 GUI (III) 이대현교수 학습안내 학습목표 CEGUI 라이브러리를이용하여, 게임메뉴 UI 를구현해본다. 학습내용 CEGUI 레이아웃의로딩및렌더링. OIS 와 CEGUI 의연결. CEGUI 위젯과이벤트의연동. UI 구현 : 하드코딩방식 C++ 코드를이용하여, 코드내에서직접위젯들을생성및설정 CEGUI::PushButton* resumebutton
More informationJVM 메모리구조
조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.
More information설계란 무엇인가?
금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]
More informationPCServerMgmt7
Web Windows NT/2000 Server DP&NM Lab 1 Contents 2 Windows NT Service Provider Management Application Web UI 3 . PC,, Client/Server Network 4 (1),,, PC Mainframe PC Backbone Server TCP/IP DCS PLC Network
More informationMicrosoft PowerPoint - chap10-함수의활용.pptx
#include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과
More information윈도우즈 프로그래밍
8 장대화상자 VS 2015 008. 윈도우프로그래밍 DB & Mining LAB. Korea University Updated 2010. 10. 23 Updated 2012. 10. 02 Updated 2015. 09. 23 이종욱 eastwest9@korea.ac.kr 1 8-1 대화상자 (1/3) 사용자로부터끊임없이지시를받고사용자의지시에따라작업을하고 작업한결과를사용자에게보고한다.
More informationMicrosoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100
2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack
More information<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>
리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1
More information윈도우시스템프로그래밍
데이타베이스 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2013.05.15. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생
More informationC++ Programming
C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout
More informationUI TASK & KEY EVENT
2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize
More informationProgramming hwp
CHelloWindow::CHelloWindow() { CRect r; // Create the window itself Create(NULL, _T("CStatic Tests"), WS_OVERLAPPEDWINDOW, CRect(0, 0, 300, 200)); // Get the size of the client rectangle GetClientRect(&r);
More information