Giter VIP home page Giter VIP logo

windows_programming's Introduction

windows_programming

이스트 소프트 시험 대비하여 공부!!!

Visual C++ programming...

Visual C++ 개요

Visual C++는 윈도우 응용 프로그램과 웹 응용 프로그램(인터넷 프로그램)을 개발할 수 있는 마이크로소프트(MS)사의 통합 개방 환경(IDE : Integrated Development Environment)의 도구.

통합 개발 환경이란 소프트웨어 개발에 사용할 수 있는 편집기, 컴파일러, 디버거 등으로 구성된 도구 그룹으로서 모두 하나의 사용자 인터페이스에서 실행되는 것을 말함.

Visual C++는 MS사의 windows library가 제공하는 기능들을 대부분 활용할 수 있음. Visual C++는 통합 개발 환경이 제공되어 제공되어 웹 프로그램, 윈도우 응용 프로그램, 콘솔 프로그램 등 모든 프로그램을 개발할 수 있음.

Visual C++로 주로 만드는 응용 프로그램의 종류

  1. 콘솔 응용 프로그램 : GUI(Graphical User Interface, 그래픽 사용자 인터페이스)없이 윈도우즈의 명령 쉘(Command Shell)에서 실행되는 프로그램. 콘솔 프로그램을 빌드(컴파일/링크)하면 실행파일(EXE)이 만들어짐.
  2. Windows용 응용 프로그램 : 일반적인 윈도우 응용 프로그램을 작성할 때 사용. 우리가 Windows 환경에서 사용하는 대부분의 프로그램이 이 범주에 포함.
  3. 웹 응용 프로그램 : Page 객체를 이용하며 웹 프로그램을 작성할 때 사용. 웹 폼(Web Form)과 웹 서비스(Web Service)를 만들 수 있다.

윈도우 프로그래밍 개념

예전의 DOS와 같은 CLI(Command Line Interface) OS에서의 프로그래밍은 개발자가 처리해야할 일들을 순서대로 일일이 작성하여, 개발자가 작성한 프로그램이 운영체제의 기능을 호출하여 수행되었다.

그러나 윈도우즈(Windows) 프로그래밍에서는 메시지를 기반으로 프로그램을 작성하므로, 개발자가 작성한 프로그램이 운영체제의 기능을 호출하지 않고, 운영체제가 개발자들이 작성한 프로그램을 호출하는 방식으로 프로그램이 수행된다. 이렇게 수행되는 방식을 메시지 기반(Message Driven)혹은 이벤트 기반(Event Driven) 프로그래밍 방식이라 부르며, 위도우즈 프로그래밍에서는 많은 부분을 운영체제가 담당하여 처리한다.

예를 들어 윈도우즈 프로그램에서 마우스가 클릭 되었다는 사건(Event)이 발생하면 윈도우즈 운영체제는 어느 프로그램의 윈도우에 마우스가 클릭 되었는지 검사한 후, 해당 프로그램에 '마우스가 클릭되었다' 라는 메시지를 전송. 위도우즈에서 메시지는 정수값으로 정의되어 있다. 만일 왼쪽 마우스 버튼이 클릭되면 개발자가 작성한 프로그램은 WM_LBUTTONDOWN이라는 메시지를 받는다.

윈도우즈는 모든 자원을 핸들(Handle)로서 관리하며, 핸들이란 리소스(Resource, 자원)를 구별하기 위한 정수값이다. 윈도우즈 운영체제는 일반 사용자에게 쉘(Shell)을 제공하고, 개발자에게는 API를 제공. Windows API는 윈도우즈 운영체제가 제공하는 함수들의 집합으로서 16비트 용 WIN16 API와 32비트 용 WIN32 API가 있다. 32비트 용 WIN32 API는 32비트 환경에서 수행되는 응용 프로그램을 작성할 때 사용.

Windows API 는 커널 모듈(KERNEL.DLL), GDI 모듈(GDI32.DLL), 사용자 인터페이스 모듈(USER32.DLL)로 구성.

윈도우즈 프로그래밍을 작성하기 위해서는 Win32 SDK(Software Development Kit)가 필요한데, SDK는 소프트웨어를 개발하기 위하여 필요한 컴파일러, 라이브러리, 기타 프로그램의 집합을 의미하고, Win32 SDK는 윈도우즈 어플리케이션을 개발하는데 필요한 툴(tool)이며, visual C++는 Win32 SDK 기능을 모두 가지고 있다.

MFC 개념

Visual c++에서는 대부분 MFC(Microsoft Foundation Class)를 사용하여 프로그램을 작성한다. MFC는 WIN32 응용 프로그램을 아주 쉽게 작성하기 위한 C++ 클래스들의 집합.

MFC를 사용하면 프레임워크(Framework)이 제공되어 기본적인 프로그램 골격을 자동으로 만들어 주기 때문에 간단하고 쉽게 프로그램을 작성할 수 있다. 다음과 같은 장점이 있다.

  1. 프레임워크가 제공되므로 WIN32 SDK를 이용한 프로그래밍 보다 훨씬 간편하고 빠르게 작성할 수 있으며, 재사용이 쉽고 유지보수가 편리.
  2. 객체지향 프로그래밍 기술을 이용하면서 WIN32 SDK 함수를 모두 사용할 수 있다.
  3. 예외 처리, 객체의 생성자와 소멸자를 이용하여 메모리 할당과 해제 등을 쉽게 처리한다.
  4. 할당 영역 검증, 안전한 동적 메모리 관리, 디버깅 등의 기능을 이용하여 안전한 프로그래밍을 작성할 수 있다.
  5. MFC로 작성한 프로그램은 이식성이 좋으므로 향후 이 기종 컴퓨터나 운영체제로 전환이 용이.

MFC로 프로그램을 작성하는 단계

  1. AppWizard(응용 프로그램 마법사)를 이용하여 응용프로그램의 기본 틀을 생성
  2. 도큐먼트(document) 클래스에 다룰 데이터에 대한 자료구조를 생성
  3. 뷰(View) 클래스에 데이터를 보여주기 위하여 OnDraw()를 이용해서 화면에 나타낼 내용을 작성
  4. 메뉴, 다이얼로그 박스, 상태 바 등의 사용자 인터페이스에 관계된 내용을 작성
  5. ClassWizard를 이용하여 메시지 처리를 작성

windows_programming's People

Contributors

flyingbest avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.