Visual C++ Programming 세종대학교 디지털콘텐츠학과 2009년 1학기
담당교수 박상일 (디지털콘텐츠 학과) 이메일: sipark@sejong.ac.kr 홈페이지/강의게시판: http://dasan.sejong.ac.kr/~sipark/class2009/vc 전화: 02-3408-3832 연구실: 충무관 1130호 면담가능시간: 화(목)요일 14:00~16:00
과목개요 강의 목적 선수과목: C/C++ ( C++필수 ) 진도 범위 어플리케이션 작성을 위한 개발환경에 친숙해진다. Windows 프로그램을 작성하기 위한 코딩기술을 익힌다. 선수과목: C/C++ ( C++필수 ) 진도 범위 Windows Programming 기초 AppWizard와 ClassWizard를 이용한 Windows 프로그램 작성 방법 (MFC based) 구성 컴포넌트 사용법 응용 프로그래밍
과목개요 강의 목적 C++를 이용한 코딩 연습
과목개요 평가 중간고사: 30% (실습고사) 기말고사: 30% (실습고사) 과제 및 수시평가: 30% (5회 이상 예상) 출석: 10% 결석 1회 총점 2% 감점 결석 6회 이상 F 지각2회=결석1회
Visual C++ ?
지금까지 해왔던 코딩 C 프로그래밍 / C++ 프로그래밍 ?
지금까지 해왔던 코딩 C 프로그래밍 / C++ 프로그래밍 변수/배열 =,+,-,*,/ if for function pointer class template
C++와 Windows 프로그래밍 C++의 충분한 이해 필요 자신만의 친숙한 개발 도구 선택 본 강의에서는 객체지향 언어 (Object Oriented Language) 클래스 (Class) 상속 (Inheritance) 다형성 (Polymorphism)과 가상 함수 (Virtual Functions) 자신만의 친숙한 개발 도구 선택 Microsoft Visual Studio (~6.0, .net 2003, 2005) Borland C++ Builder 등등 본 강의에서는 Microsoft사의 Visual Studio .NET 2003/2005 에서 제공하는 IDE (Integrated Development Environment) 사용 (Visual Studio 6.0 상관없음)
Windows 프로그램의 개념 윈도우 프로그래밍이란? Windows 프로그램 vs. DOS 프로그램 ?? 사용자가 발생시키는 이벤트에 대한 메시지를 처리하는 것 메시지 기반 (Message Driven) 프로그래밍 이벤트 기반 (Event Driven) 프로그래밍 Windows 프로그램 vs. DOS 프로그램 ??
GUI (Graphical User Interface)
GUI Programming? 이벤트가 발생되었을 때 이를 처리하는 방법을 알려 주는 것 이벤트 핸들러 이벤트 발생
Event? 입력장치의 상태 변화 또는 내부의 상태변화
이벤트와 이벤트 핸들러 이벤트 발생 대기 ... 시스템 메시지 대기열 메시지 대기열 #3 메시지 대기열 #2 처리 응용 프로그램 메시지 대기열 #1 메시지 대기열 #2 메시지 대기열 #3 ... 처리 대기
Windows 프로그래밍의 기본 구조
VC++ IDE (통합 개발 환경) 시스템의 구성 요소 개발 과정 단순화를 위한 기타 도구 Editor Compiler Source code 작성 Compile, editing, debuging 등의 interactive 환경 제공 Compiler Compile : Source code machine language Error and warning detecting and notifying Output : object code (.obj) Linker Link : module merging + program libraries Linking error detecting and notifying Library Standard library MFC&T(Microsoft Foundation Classes and Templates) 개발 과정 단순화를 위한 기타 도구 AppWizard : Windows 프로그램의 기본적인 프레임웍 자동 생성 ClassWizard : AppWizard에 의해 생성된 클래스 확장 용이성 제공
VC++ IDE 구조
윈도우 응용 프로그램 개발 도구 (1/3) API(Application Programming Interface) 기반 장점 운영체제가 응용 프로그램을 위해 제공하는 각종 함수의 집합 장점 세부적인 제어가 가능하고, 윈도우 운영체제가 제공하는 모든 기능을 사용할 수 있다. 생성 코드의 크기가 작고 속도가 빠르다. 단점 생산성이 낮다.
윈도우 응용 프로그램 개발 도구 (2/3) RAD(Rapid Application Development) 장점 단점 시각적으로 화면을 디자인하고 코드를 추가하는 방법으로 프로그램을 빠르게 개발 Visual Basic, Delphi 등 장점 생산성이 높다. 단점 일반적으로 생성 코드의 크기가 크고 실행 속도가 느리다. 운영체제가 제공하는 모든 기능을 활용한 세부적인 제어가 어렵다.
윈도우 응용 프로그램 개발 도구 (3/3) MFC (Microsoft Foundation Class Library) 기반 장점 API 중 많이 사용되는 기능들을 사용하기 쉽게 잘 포장해 놓은 것 객체 지향 언어를 이용하여 클래스로 제공 장점 API 직접 이용 보다 생산성이 높다. RAD보다 생성 코드의 크기가 작고 실행 속도가 빠르다. 단점 초기 학습에 필요한 기간이 길다. 객체 지향 언어 클래스 라이브러리 구조와 기능, 각 클래스의 관계 파악
교재 김선우, 신화선 저 윈도우 프로그래밍 Visual C++ MFC Programming 한빛미디어