쑤쑤_CS 기록장

Windows 프로그래밍 본문

IT 지식 기록/반도체 SW

Windows 프로그래밍

(╹◡╹)_ 2021. 4. 5. 10:34
728x90

Windows 프로그래밍 = Win32 API를 사용한 응용 프로그램

Win32 응용 프로그래밍 = Windows 데스크톱 응용 프로그래밍

 

1. 기본적인 용어와 개념

 

운영체제

  • Operation system
  • 컴퓨터 사용자 - 운영체제 - 하드웨어
  • 컴퓨터를 구성하는 하드웨어를 공부하거나 이해할 필요 없이 각 장치들을 제어(사용)할 수 있도록 도와주고, 장치의 한계를 관리하고 보호하는 소프트웨어

응용 프로그램과 API

  • 운영체제의 제공과 별도로 개발자들이 해당 운영체제에서 동작하는 프로그램을 개발, 응용 프로그램 Application Program
  • 응용 프로그램 개발자들이 해당 운영체제에서 동작하는 프로그램을 쉽게 만들 수 있도록 운영체제가 제공하는 함수의 집합체를 API (Application Programming Interface)
  • 응용 프로그램 -[API]- 운영체제 - 하드웨어

 

SDK

  • API를 사용하기 위한 프로그래밍 언어, 프로그램 언어를 컴파일 할 수 있는 컴파일러, 편리한 소스 편집기 등도 제공되어야한다.
  • 응용 프로그램을 개발하기 위해서 필요한 프로그램 집합체(개발 환경)를 SDK (Software Development Kit, 소프트웨어 개발 키트)라고 한다.
  • 개발에 필요한 기능 뿐만 아니라 개발 계획을 게우는 기능, 개발 후 프로그램을 유지보수하는 개념, 사용자에게 편리하게 배포(설치파일을 만들고 사용자에게 전달하는 기능 등) 하는 기능까지 포함하고 있다. 넓은 의미의 통합 개발 환경을 제공한다.

 

2. Windows 데스크톱 응용 프로그램을 배우는 이유

 

Windows 데스크톱 응용 프로그램이란?

  • Windows 운영체제에서 실행되는 전통적인 윈도우 기반의 프로그램
  • ex. Windows 운영체제에서 항상 볼 수 있는 그림판, 메모장, 탐색기 등의 프로그램

응용 프로그램은 어떻게 만드는가?

  • Windows 운영체제가 C언어를 기반으로 만들어졌기 때문에 C언어와 운영체제가 제공하는 API함수를 가지고 개발하는 것이 기본이다.
  • Visual C/C++ 외 다른 언어와 개발 도구를 사용해서도 개발이 가능하다.

 

3. '핸들'의 동작 원리

  • Windows 운영체제는 자신을 보호하기 위해 운영체제가 제공하는 자원(커널 객체) 에 대해서는 응용 프로그램이 포인터를 사용해서 마음대로 접근하지 못하게 되어 있다.
  • 그래서 Windows운영체제는 자신의 내부 자원(정보)을 응용 프로그램이 간접적으로 사용할 수 있게 포인터의 개념과 유사하지만 포인터는 아닌 '핸들'이라는 개념을 제공한다.

운영체제와 리소스

  • 운영체제를 설치하면 컴퓨터를 구성하는 여러 가지 장치를 운영체제가 관리해주기 때문에 '응용 프로그램' 개발자는 운영체제를 통해서 컴퓨터의 여러 장치를 편리하게 사용할 수 있다.
  • 이때 운영체제에 의해서 관리되는 장치나 해당 장치를 사용하기 위해 필요한 정보들을 운영체제의 '리소스 Resource'라고 부른다. 
  • 응용 프로그램이 컴퓨터의 어떤 장치를 사용하고 싶다면 해당 장치와 관련된 운영체제 리소스에 접근하여 원하는 작업을 수행하게 된다.

응용 프로그램이 리소스에 접근하면 위험하다.

 

 

 

 

참고

- blog.naver.com/tipsware/221059977193

 

김성엽의 Windows 프로그래밍 이야기

기본적으로 Windows 프로그래밍을 배운다는 뜻은 Win32 API를 사용한 응용 프로그램을 만드는 방법에 ...

blog.naver.com

 

728x90

'IT 지식 기록 > 반도체 SW' 카테고리의 다른 글

EES  (0) 2021.04.05
.NET Framework  (0) 2021.04.05
공부하며 정리하기  (0) 2021.04.02
04/01 일지  (0) 2021.04.01
반도체 기초, 메모리 시스템 반도체, 반도체 공정 정리  (0) 2021.03.25
Comments