Win32 API with 나우캠퍼스

Win32 API 1강. 프로그래밍 기초

코다람쥐 2022. 8. 6. 14:58

목차.

1. Win32 API 프로그래밍 개요

2. 프로그래밍 구조 비교

3. 윈도우 데이터형

4. 인스턴스와 핸들

5. 헝가리언 표기법

 

1. Win32 API 프로그래밍 개요

▩ Win32 API 프로그래밍이란?

윈도우 운영체제가 제공하는 함수를 이용한 C언어 기반의 프로그래밍

  프로그래밍 방식의 변화

- 윈도우 운영체제 이전

 프로그래밍이 운영체제를 제어 모든 프로그래밍을 프로그래머가 전담(키보드, 마우스 등을 직접 프로그래밍 -> 메모리 상주 프로그램, BIOS)

 

- 윈도우 운영체제 이후

운영 체제로부터 모든 정보를 얻는다.

메시지 방식 => 정보를 알려줌

 

2. 프로그래밍 구조 비교

  프로그래밍 형식의 변화

- C/C++ 콘솔 프로그래밍의 경우

프로그램이 실행되면 main()를 찾아서 실행함.

 

- Win32 API의 경우

WinMain() : 응용 프로그램이 실행되면 윈도우를 생성함.

WinProc() : WinMain()안에서 작동하며 윈도우 프로시져라고 하는 함수를 OS에 등록함.(메시지 처리)

 

▩  키 입력 받는 프로그래밍

- C 언어 코드

- Win32 API 윈도우 프로그래밍 코드

 

▩ 윈도우 명칭

일반적인 윈도우창 화면에서 최소화, 최대화, 닫기, 메뉴바, 시스템 메뉴, 클라이언트 영역 등등..

 

3. 윈도우 데이터형

▩  C/C++언어 데이터형

char, shrot, int ,long, float, double, long double, bool

 

▩ Win32 API 데이터형

기존의 C/C++의 데이터형을 #define을 통해 재정의하였고, 그 종류는 매우 많기 때문에 필요할 때 마다 msdn문서를 참조하면 된다.

https://docs.microsoft.com/ko-kr/windows/win32/winprog/windows-data-types

 

Windows 데이터 형식(BaseTsd.h) - Win32 apps

Windows 지원하는 데이터 형식은 함수 반환 값, 함수 및 메시지 매개 변수 및 구조체 멤버를 정의하는 데 사용됩니다.

docs.microsoft.com

 

 

4. 인스턴스와 핸들(★★★★★)

▩ 운영체제는 멀티 태스킹(multi tasking) 운영체제이다.

▩ 운영체제가 응용 프로그램을 실행 또는 구분하는 방법

인스턴스(instance)와 핸들(handle)

인스턴스와 핸들의 실체?

 

▩ 인스턴스?

- 응용 프로그램 아이디

- 같은 종류의 프로그램은 같은 인스턴스를 가진다.

 

▩  핸들?

- 운영체제에서 할당한 자원의 아이디(윈도우, 펜 브러쉬 등)

 

▩ 공통점

1) 운영체제에서 할당하는 값

2) 중복되지 않느 값 -> 아이디 속성

 

▩ 윈도우 프로그래밍 할 때 가장 중요한 것

핸들 handle

HWND, HDC, HPEN, HBRUSH 등...

모두 void* 형으로 정의되어 있음.

 

5. 헝가리언 표기법

▩ 헝가리언 표기법

변수명 또는 함수명의 명명 규칙

관례적으로 사용

변수명만으로 용도 파악이 용이

▩ 사용 방법?

- 의미 있는 단어를 연결하되 첫 문자는 대문자

(Person + Count = PersonCount)

- 데이터형을 의미하는 접두사를 붙임

(fCount, nNumber...)

 

▩ 변수명에 붙인은 접두사

bool : b

char : ch, c

int, short : n

long : l

flaot : f

double : d

배열 : a

DWORD : dw

문자열 : str

포인터 : p

핸들 : h

전역변수 : g_

윈도우메시지 : msg