C++/summary

윈도우 프로그래밍 기초.

gandus 2010. 11. 8. 09:48
  • 윈도우 운영체제와 윈도우 응용 프로그램의 특징을 이해한다.
  • SDK 응용 프로그램의 작성 과정과 기본 구조 및 동작 원리를 이해한다.
  • MFC 응용 프로그램의 작성 과정과 기본 구조 및 동작 원리를 이해한다.
  • 비주얼 C++ 개발 환경의 사용법을 익힌다.



    윈도우 운영체제의 특징


    기본적인 윈도우 창. GUI






 메모리 구동 구조.




시스템 메시지 큐, 응용프로그램 메시지 큐 2가지가 존재한다.




n  멀티태스킹과 멀티스레딩

—  멀티태스킹(Multitasking)

      운영체제가 여러 개의 응용 프로그램을 동시에 실행

—  멀티스레딩(Multithreading)

      응용 프로그램 내부에서 여러 개의 실행 흐름(=스레드)을 동시에 진행

 





윈도우 응용 프로그램의 특징


n  API 호출문 집합

—  윈도우 API(Application Programming Interface)?

      윈도우 운영체제가 응용 프로그램을 위해 제공하는 각종 함수의 집합

Ø  16비트 윈도우에서는 Win16 API, 32 또는 64비트 윈도우에서는 Win32 API라 부름


 

 

 

n  실행 파일과 DLL 집합

—  DLL(Dynamic-Link Library)이란?

      프로그램이 실행 중에 결합하여 사용할 수 있는 코드와 리소스의 집합

Ø  윈도우 운영체제가 제공하는 APIDLL 형태로 제공되며,
응용 프로그래머는 필요한 기능을 DLL로 제작하기도 함

 

 

n  장치 독립성

—  장치 독립성(Device-Independency)이란?

      주변 장치가 바뀌어도 장치 드라이버(Device Driver)
설치하면 프로그램을 수정하지 않고 실행할 수 있음

 

 

 


윈도우 응용 프로그램의 개발 방식

n    SDK             ->최적화된 프로그램을 만들때 용이하다.// 게임 개발시에 유용

—  특징

      윈도우 API Ë 응용 프로그램 코드(C/C++ 언어)

—  장점

      API를 직접 다루기 때문에 세부 제어가 가능함

      윈도우 운영체제가 제공하는 모든 기능을 사용 가능

      생성 코드의 크기가 작고 속도도 빠름

—  단점

      다른 개발 방식에 비해 생산성이 매우 낮음



n   RAD             -> GUI방식을 통한 인터페이스 추가가 가능해서 쉽다.
               ->하지만 코드를 변환시에 어렵다.
                -> 업무용 프로그램에서 유용하다. 간단한 프로그램이라.

—  특징

      시각적 화면 디자인 Ë 응용 프로그램 코드

—  장점

      간편하게 직관적으로 프로그래밍할 수 있음

      빠른 시간 내에 원하는 기능의 프로그램 개발 가능

—  단점

      SDK나 클래스 라이브러리를 이용한 개발 방식보다
생성 코드의 크기가 크고 실행 속도도 떨어지는 편임

      윈도우 운영체제가 제공하는 모든 기능을 활용한
세부적인 제어가 어려운 경우가 있음

 


n  클래스 라이브러리 ( MFC를 이용 )

—  특징

      클래스 라이브러리 Ë 응용 프로그램 코드(객체지향언어)

—  장점

      SDK를 이용한 방식보다 생산성이 높음

      API를 직접 사용해서 세부적으로 제어할 수 있음

      RAD 개발 방식보다 코드 크기와 실행 속도 면에서 유리함

—  단점

      객체 지향 프로그래밍에 익숙해야 함

      클래스 라이브러리의 구조와 각 클래스의 기능 및 관계를
파악하기 위한 초기 학습 기간이 긴 편임


  - > 자주 사용하는 것들을 묶어서 캡슐화 한것이 mfc다 하지만 그 외 것들은 API를 통해 접근.



n    .NET 프레임워크

—  .NET 프레임워크란?

      윈도우 운영체제에 설치할 수 있는 소프트웨어 개발 및
실행 환경

      공용 언어 런타임(CLR, Common Language Runtime)
이라는 소프트웨어 가상 머신을 제공하며, 가상 머신의
제어 하에 응용 프로그램이 구동됨(장치 독립성)

      윈도우 API에 버금가는 방대한 라이브러리를 제공하며,
언어에 상관없이 라이브러리를 사용 가능(언어 독립성)