ݺߣ

ݺߣShare a Scribd company logo
윈도우 프로그래밍 입문
nonezerok@gmail.com
http://www.kocw.net
1
2
윈도우 프로그래밍
언어: C, C++, VB, C# …
Windows 환경 개발 라이브러리: Win32 API, MFC, …
통합개발환경: Visual Studio
보통의 경우: MFC 프레임워크 기반 윈도우 프로그래밍
C로 하는 Win32 API 기반
윈도우 프로그래밍 +/-
• C 언어만 알아도 배울 수 있다.
• 윈도우 프로그래밍 원리를 배울 수 있다.
– VB, C# 등 다른 언어로 하는 윈도우 프로그래밍을
쉽게 배울 수 있다.
• 코딩이 번거롭다.
• 객체지향언어와 궁합이 맞다.
– (C++) MFC 프레임워크 기반 윈도우 프로그래밍
보다 개발이 불편하다.
3
윈도우 프로그래밍이 편리하도록 C++로 만들어 놓은 틀
4
MFC 프레임워크 기반
윈도우 프로그래밍 학습은 어렵다
• 윈도우 프로그래밍은 콘솔기반의 프로그래밍과 다르다.
• 익숙하지 않은 C++로는 윈도우 프로그래밍 개념 파악이
어렵다.
• MS의 호의로 만들어진 MFC 프레임워크도 알아야 한다.
윈도우프로그래밍
개념
C++
MFC
프레임워크 한 개씩은
넘겠는데
…
C
5
• C 언어, Win32 API 기반 윈도우 프로그래밍을
기본으로 윈도우 프로그래밍 개념을 배운다.
• MFC 프레임워크 환경에서,
• -객체지향언어의 편리함(클래스 사용)을 누린다.
• -그리기, 대화상자, 동적라이브러리, 스레드
본 강의에서는
• C# 환경에서,
• -기본 윈도우 프로그래밍을 배운다.
• -동적라이브러리, NuGet 패키지
6
• 대상: C 프로그래밍 언어
• 강의목표: 다양한 윈도우 프로그래밍 기법
소개가 아닌 윈도우 프로그래밍 개념 확립;
수강 후 인터넷에 널린 자료를 스스로 활용
할 수 있다
• 강의방법: 매우 간단한 문제를 단계적으로
제시하여 (쉽게) 설명
※ 참고교재: 아하 그렇구나, 윈도우프로그래밍입문, 고재필
공대 비전공자 2학년 수준 대상
CHAP. 1
윈도우 프로그래밍이란
7
Window Programming
• Microsoft Windows
• Console Programming
8
한번에 하나의 프로그램만
실행 (Single Tasking)
동시에 여러 개의 프로그램
수행 (Multi-Tasking)
프로그래밍 방식이 똑 같을까 ?
9
자기 자신만 고려해서
코딩 한다
동시에 수행되고 있는 다른
프로그램을 신경 써서
코딩 한다.
말도 안돼 누가 수행될지도 모르는데
어떻게 고려해서 코딩 해
10
다행히 그런 부분은 Windows (운영체제)가 알아서 처리해준다
대신 이러 이러한 방식으로 코딩 하라는 규칙이 있다
그 규칙에 따라서 코딩 하는 것을
사건 기반 프로그래밍
Event-Driven Programming
이벤트가 뭔지는 모르겠지만 중요한 말 같다
11
Event 처리 예
• 이벤트: [서식]-[글꼴]에서 마우스 클릭
• 이벤트 처리: 글꼴 선택 윈도우 출력
12
이벤트 처리 과정
이벤트 발생 메시지 생성
메시지 인출메시지 처리
애플리케이션 큐
Application Queue
메시지
프로그램 끝 날 때 까지 반복
13
이벤트 발생은 어디서
윈도우에서
14
프로그래머가 하는 일
메시지 처리 코딩
또 하나는 ?
15
프로그래머가 하는 일
윈도우 생성 끝, 달랑 두 가지
16
17
윈도우 프로그래밍이란 ?
이벤트 기반 프로그래밍
이런 윈도우 만들고
여기서 발생하는 사건(이벤트)를 맡는 거군
콘솔코드와 윈도우코드
18
main( )
{
}
a.c
a.exe
WinMain ()
{
}
b.c
b.exe
코드 시작 함수만 바꿔주면 되는구나
프로그램 개발 도구
• Window Programming using C or C++
• Win32 Application Programming Interface
• Microsoft Foundation Class
• Visual Studio 2010
19
CHAP. 2
개발 툴 사용하기
20
21
[파일]-[새로 만들기]-[프로젝트]
22
프로젝트 이름 입력: Hello
Win32 프로젝트 선택
23
[응용 프로그램 설정]
24
[빈 프로젝트]
25
프로젝트 생성 완료
26
[프로젝트]-[새 항목 추가]
27
C++ 파일로 Hello.cpp 생성 추가
28
소스코드 입력 창
Hello.cpp 파일
29
[프로젝트]-[Hello 속성]
30
멀티바이트 문자 집합 사용
[구성속성]-[일반]-[문자집합]-[멀티바이트 문자 집합 사용]
31
소스코드 입력
32
[빌드]-[솔루선빌드]
33
Ctrl-F5
[디버그]-[디버깅하지 않고 시작]
34
윈도우 이동, 윈도우 크기 조절, 시스템 메뉴

More Related Content

01 윈도우프로그램 들어가기