윈도우즈 운영체제 기반의 프로그램 개발에 대해 소개하는 세미나 입니다. 02학번들에게 많은 도움 되었으면 좋겠습니다.
윈도우즈 운영체제
- 32비트 운영체제
- 멀티태스킹 지원
- 멀티스래딩 지원
서브시스템
- Console 서브시스템 - 텍스트 모드 에플리케이션 운영
- Windows 서브시스템 - GUI 모드 에플리케이션 운영
(앞으로 Windows 서브시스템 기반의 프로그래밍을 윈도우즈 프로그래밍이라고 하겠다.)
- Native 서브시스템 - 디바이스 드라이버 운영
- Windows CE 서브시스템 - Windows CE 에플리케이션 운영
- POSIX 서브시스템 - POSIX 에플리케이션 운영
윈도우즈 프로그래밍
메시지 구동 방식
하드웨어 독립적 프로그래밍
윈도우즈 API와 MFC
- 윈도우즈 API (Application Program Interface)
- 윈도우즈 프로그래밍을 하기 위해 필요한 함수들을 제공
- 세부적인 것들을 모두 다룰 수 있지만 너무 복잡해서 사용하기 어렵다.
- MFC (Microsoft Foundation Class library)
- 윈도우즈 API를 클래스로 포장하여 제공하는 클래스 라이브러리
- 윈도우즈 API 만큼 세부적인 것들을 모두 다룰 수는 없지만 윈도우즈 API 보다 사용하기 쉽다.
- AppWizard, ClassWizard 등의 툴과의 통합으로 더욱 쉽게 사용할 수 있다.
리소스
- 실행파일에 붙여지는 바이너리 데이터
- 아이콘, 커서, 메뉴, 다이얼로그 박스, 비트맵, 폰트, 엑셀레이터 테이블, 스트링 테이블, 버전 정보 등
DLL
윈도우즈 데이터 타입
| 데이터 타입
|
의미
|
| BOOL
|
TRUE 또는 FALSE 값만 가질 수 있다.
|
| BYTE
|
unsigned char
|
| CHAR
|
signed char
|
| DOUBLE
|
double
|
| DWORD
|
unsigned long
|
| FLOAT
|
float
|
| HANDLE
|
핸들
|
| INT
|
signed int
|
| LONG
|
signed long
|
| LPARAM
|
메시지 파라미터
|
| LPCSTR
|
NULL 문자로 끝나는 문자열 상수 포인터
|
| LPSTR
|
NULL 문자로 끝나는 문자열 포인터
|
| SHORT
|
signed short
|
| UINT
|
unsigned int
|
| WORD
|
unsigned short
|
| WPARAM
|
메시지 파라미터
|
헝가리언 표기법
- 함수명
- 일반적으로 "동사 + 목적어" 또는 "동사 + 보어" 로 만들고 각 단어의 첫글자는 대문자로 나머지는 소문자로 쓴다.
- 윈도우를 만드는 함수는 CreateWindow, 메시지를 보내는 함수는 SendMessage
- 변수명
| 접두어
|
의미
|
| a
|
배열
|
| b 또는 f
|
BOOL 타입의 변수
|
| by
|
BYTE 타입의 변수
|
| c
|
카운터로 사용되는 변수
|
| ch
|
CHAR 타입의 변수
|
| dbl
|
DOUBLE 타입의 변수
|
| h
|
HANDLE 타입의 변수
|
| n 또는 i
|
INT 타입의 변수
|
| l
|
LONG 타입의 변수
|
| p & lp
|
포인터 변수
|
| s
|
문자열
|
| sz
|
NULL로 끝나는 문자열
|
| u
|
UINT 타입의 변수
|
| w
|
WORD 타입의 변수
|
| dw
|
DWORD 타입의 변수
|
윈도우즈 API를 이용한 예제 프로그램
MFC를 이용한 예제 프로그램
참고자료
Thread