SlideShare uma empresa Scribd logo
1 de 34
Baixar para ler offline
윈도우 프로그래밍 입문
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
윈도우 이동, 윈도우 크기 조절, 시스템 메뉴

Mais conteúdo relacionado

Mais procurados

13 사용자 메세지 처리
13 사용자 메세지 처리13 사용자 메세지 처리
13 사용자 메세지 처리jaypi Ko
 
03 첫번째프로그램
03 첫번째프로그램03 첫번째프로그램
03 첫번째프로그램jaypi Ko
 
06 일반적 유형의 프로그램
06 일반적 유형의 프로그램06 일반적 유형의 프로그램
06 일반적 유형의 프로그램jaypi Ko
 
Linux screen manual (KOR ver)
Linux screen manual (KOR ver)Linux screen manual (KOR ver)
Linux screen manual (KOR ver)Kevin Kim
 
adios 2021 oct 유현식 발표자료
adios 2021 oct 유현식 발표자료adios 2021 oct 유현식 발표자료
adios 2021 oct 유현식 발표자료Hyun-sik Yoo
 
[실전 윈도우 디버깅] 13 포스트모템 디버깅
[실전 윈도우 디버깅] 13 포스트모템 디버깅[실전 윈도우 디버깅] 13 포스트모템 디버깅
[실전 윈도우 디버깅] 13 포스트모템 디버깅종빈 오
 
Pro typescript.ch07.Exception, Memory, Performance
Pro typescript.ch07.Exception, Memory, PerformancePro typescript.ch07.Exception, Memory, Performance
Pro typescript.ch07.Exception, Memory, PerformanceSeok-joon Yun
 

Mais procurados (8)

13 사용자 메세지 처리
13 사용자 메세지 처리13 사용자 메세지 처리
13 사용자 메세지 처리
 
03 첫번째프로그램
03 첫번째프로그램03 첫번째프로그램
03 첫번째프로그램
 
06 일반적 유형의 프로그램
06 일반적 유형의 프로그램06 일반적 유형의 프로그램
06 일반적 유형의 프로그램
 
Linux screen manual (KOR ver)
Linux screen manual (KOR ver)Linux screen manual (KOR ver)
Linux screen manual (KOR ver)
 
Mfc 4장
Mfc 4장Mfc 4장
Mfc 4장
 
adios 2021 oct 유현식 발표자료
adios 2021 oct 유현식 발표자료adios 2021 oct 유현식 발표자료
adios 2021 oct 유현식 발표자료
 
[실전 윈도우 디버깅] 13 포스트모템 디버깅
[실전 윈도우 디버깅] 13 포스트모템 디버깅[실전 윈도우 디버깅] 13 포스트모템 디버깅
[실전 윈도우 디버깅] 13 포스트모템 디버깅
 
Pro typescript.ch07.Exception, Memory, Performance
Pro typescript.ch07.Exception, Memory, PerformancePro typescript.ch07.Exception, Memory, Performance
Pro typescript.ch07.Exception, Memory, Performance
 

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

DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발YEONG-CHEON YOU
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)Kiyoung Moon
 
MFC 발견 (1)
MFC 발견 (1)MFC 발견 (1)
MFC 발견 (1)종훈 박
 
XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)YEONG-CHEON YOU
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍NDOORS
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~YEONG-CHEON YOU
 
Porting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp appPorting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp appYEONG-CHEON YOU
 
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)Sang Don Kim
 
win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기YEONG-CHEON YOU
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
게임프로그래밍입문 2주차
게임프로그래밍입문 2주차게임프로그래밍입문 2주차
게임프로그래밍입문 2주차Yeonah Ki
 
C#강좌
C#강좌C#강좌
C#강좌e12g
 
Windows Phone Apps Story Book #1
Windows Phone Apps Story Book #1Windows Phone Apps Story Book #1
Windows Phone Apps Story Book #1Seo Jinho
 
Visual studio 사용 설명서(기초 과정)
Visual studio 사용 설명서(기초 과정)Visual studio 사용 설명서(기초 과정)
Visual studio 사용 설명서(기초 과정)Lusain Kim
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자Sewon Ann
 
Java 언어와 Eclipse, WindowBuilder를 이용한 GUI 프로그램 작성 1
Java 언어와 Eclipse, WindowBuilder를 이용한 GUI 프로그램 작성 1Java 언어와 Eclipse, WindowBuilder를 이용한 GUI 프로그램 작성 1
Java 언어와 Eclipse, WindowBuilder를 이용한 GUI 프로그램 작성 1MinGi KYUNG
 
Windows 메시지 프로그래밍
Windows 메시지 프로그래밍Windows 메시지 프로그래밍
Windows 메시지 프로그래밍MinGeun Park
 
한신대-2016-윈도우프로그래밍-00 강의소개
한신대-2016-윈도우프로그래밍-00 강의소개한신대-2016-윈도우프로그래밍-00 강의소개
한신대-2016-윈도우프로그래밍-00 강의소개barmi2000
 
아이폰에 포팅해보기
아이폰에 포팅해보기아이폰에 포팅해보기
아이폰에 포팅해보기changehee lee
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기Seungjae Lee
 

Semelhante a 01 윈도우프로그램 들어가기 (20)

DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발DirectX + C++을 이용한  WindowsStore App과 Windows Phone용 게임 개발
DirectX + C++을 이용한 WindowsStore App과 Windows Phone용 게임 개발
 
게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)게임프로그래머에게 배우는 C#1권(버전1)
게임프로그래머에게 배우는 C#1권(버전1)
 
MFC 발견 (1)
MFC 발견 (1)MFC 발견 (1)
MFC 발견 (1)
 
XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)XDK없이 XBOX게임 개발하기(UWP on XBOX)
XDK없이 XBOX게임 개발하기(UWP on XBOX)
 
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
 
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
프로그래밍 언어의 F1머신 C++을 타고 Windows 10 UWP 앱 개발의 세계로~
 
Porting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp appPorting direct x 11 desktop game to uwp app
Porting direct x 11 desktop game to uwp app
 
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
[Td 2015]프로그래밍 언어의 f1머신 c++을 타고 windows 10 uwp 앱 개발의 세계로~(유영천)
 
win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기win32 app에서 UWP API호출하기
win32 app에서 UWP API호출하기
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
게임프로그래밍입문 2주차
게임프로그래밍입문 2주차게임프로그래밍입문 2주차
게임프로그래밍입문 2주차
 
C#강좌
C#강좌C#강좌
C#강좌
 
Windows Phone Apps Story Book #1
Windows Phone Apps Story Book #1Windows Phone Apps Story Book #1
Windows Phone Apps Story Book #1
 
Visual studio 사용 설명서(기초 과정)
Visual studio 사용 설명서(기초 과정)Visual studio 사용 설명서(기초 과정)
Visual studio 사용 설명서(기초 과정)
 
ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자ant로 안드로이드 앱을 자동으로 빌드하자
ant로 안드로이드 앱을 자동으로 빌드하자
 
Java 언어와 Eclipse, WindowBuilder를 이용한 GUI 프로그램 작성 1
Java 언어와 Eclipse, WindowBuilder를 이용한 GUI 프로그램 작성 1Java 언어와 Eclipse, WindowBuilder를 이용한 GUI 프로그램 작성 1
Java 언어와 Eclipse, WindowBuilder를 이용한 GUI 프로그램 작성 1
 
Windows 메시지 프로그래밍
Windows 메시지 프로그래밍Windows 메시지 프로그래밍
Windows 메시지 프로그래밍
 
한신대-2016-윈도우프로그래밍-00 강의소개
한신대-2016-윈도우프로그래밍-00 강의소개한신대-2016-윈도우프로그래밍-00 강의소개
한신대-2016-윈도우프로그래밍-00 강의소개
 
아이폰에 포팅해보기
아이폰에 포팅해보기아이폰에 포팅해보기
아이폰에 포팅해보기
 
온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기온라인 게임 처음부터 끝까지 동적언어로 만들기
온라인 게임 처음부터 끝까지 동적언어로 만들기
 

Mais de jaypi Ko

CVPR 2022 Tutorial에 대한 쉽고 상세한 Diffusion Probabilistic Model
CVPR 2022 Tutorial에 대한 쉽고 상세한 Diffusion Probabilistic ModelCVPR 2022 Tutorial에 대한 쉽고 상세한 Diffusion Probabilistic Model
CVPR 2022 Tutorial에 대한 쉽고 상세한 Diffusion Probabilistic Modeljaypi Ko
 
개념 이해가 쉬운 Variational Autoencoder (VAE)
개념 이해가 쉬운 Variational Autoencoder (VAE)개념 이해가 쉬운 Variational Autoencoder (VAE)
개념 이해가 쉬운 Variational Autoencoder (VAE)jaypi Ko
 
[신경망기초]오류역전파알고리즘구현
[신경망기초]오류역전파알고리즘구현[신경망기초]오류역전파알고리즘구현
[신경망기초]오류역전파알고리즘구현jaypi Ko
 
파이썬설치
파이썬설치파이썬설치
파이썬설치jaypi Ko
 
객체지향 단어가 의미하는 것
객체지향 단어가 의미하는 것객체지향 단어가 의미하는 것
객체지향 단어가 의미하는 것jaypi Ko
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기jaypi Ko
 
C언어 연산자에 대해 간과한 것
C언어 연산자에 대해 간과한 것C언어 연산자에 대해 간과한 것
C언어 연산자에 대해 간과한 것jaypi Ko
 
[확률통계]04모수추정
[확률통계]04모수추정[확률통계]04모수추정
[확률통계]04모수추정jaypi Ko
 
09 윈도우스타일
09 윈도우스타일09 윈도우스타일
09 윈도우스타일jaypi Ko
 
[신경망기초] 신경망학습
[신경망기초] 신경망학습[신경망기초] 신경망학습
[신경망기초] 신경망학습jaypi Ko
 
[신경망기초] 합성곱신경망
[신경망기초] 합성곱신경망[신경망기초] 합성곱신경망
[신경망기초] 합성곱신경망jaypi Ko
 
[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현jaypi Ko
 
com architecture
com architecturecom architecture
com architecturejaypi Ko
 
[신경망기초] 소프트맥스회귀분석
[신경망기초] 소프트맥스회귀분석[신경망기초] 소프트맥스회귀분석
[신경망기초] 소프트맥스회귀분석jaypi Ko
 
[신경망기초] 심층신경망개요
[신경망기초] 심층신경망개요[신경망기초] 심층신경망개요
[신경망기초] 심층신경망개요jaypi Ko
 
[신경망기초] 선형회귀분석
[신경망기초] 선형회귀분석[신경망기초] 선형회귀분석
[신경망기초] 선형회귀분석jaypi Ko
 
[신경망기초] 오류역전파알고리즘
[신경망기초] 오류역전파알고리즘[신경망기초] 오류역전파알고리즘
[신경망기초] 오류역전파알고리즘jaypi Ko
 
[신경망기초] 멀티레이어퍼셉트론
[신경망기초] 멀티레이어퍼셉트론[신경망기초] 멀티레이어퍼셉트론
[신경망기초] 멀티레이어퍼셉트론jaypi Ko
 

Mais de jaypi Ko (19)

CVPR 2022 Tutorial에 대한 쉽고 상세한 Diffusion Probabilistic Model
CVPR 2022 Tutorial에 대한 쉽고 상세한 Diffusion Probabilistic ModelCVPR 2022 Tutorial에 대한 쉽고 상세한 Diffusion Probabilistic Model
CVPR 2022 Tutorial에 대한 쉽고 상세한 Diffusion Probabilistic Model
 
개념 이해가 쉬운 Variational Autoencoder (VAE)
개념 이해가 쉬운 Variational Autoencoder (VAE)개념 이해가 쉬운 Variational Autoencoder (VAE)
개념 이해가 쉬운 Variational Autoencoder (VAE)
 
[신경망기초]오류역전파알고리즘구현
[신경망기초]오류역전파알고리즘구현[신경망기초]오류역전파알고리즘구현
[신경망기초]오류역전파알고리즘구현
 
파이썬설치
파이썬설치파이썬설치
파이썬설치
 
객체지향 단어가 의미하는 것
객체지향 단어가 의미하는 것객체지향 단어가 의미하는 것
객체지향 단어가 의미하는 것
 
C언어 들어가기
C언어 들어가기C언어 들어가기
C언어 들어가기
 
C언어 연산자에 대해 간과한 것
C언어 연산자에 대해 간과한 것C언어 연산자에 대해 간과한 것
C언어 연산자에 대해 간과한 것
 
[확률통계]04모수추정
[확률통계]04모수추정[확률통계]04모수추정
[확률통계]04모수추정
 
09 윈도우스타일
09 윈도우스타일09 윈도우스타일
09 윈도우스타일
 
[신경망기초] 신경망학습
[신경망기초] 신경망학습[신경망기초] 신경망학습
[신경망기초] 신경망학습
 
[신경망기초] 합성곱신경망
[신경망기초] 합성곱신경망[신경망기초] 합성곱신경망
[신경망기초] 합성곱신경망
 
[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현[신경망기초] 퍼셉트론구현
[신경망기초] 퍼셉트론구현
 
interface
interfaceinterface
interface
 
com architecture
com architecturecom architecture
com architecture
 
[신경망기초] 소프트맥스회귀분석
[신경망기초] 소프트맥스회귀분석[신경망기초] 소프트맥스회귀분석
[신경망기초] 소프트맥스회귀분석
 
[신경망기초] 심층신경망개요
[신경망기초] 심층신경망개요[신경망기초] 심층신경망개요
[신경망기초] 심층신경망개요
 
[신경망기초] 선형회귀분석
[신경망기초] 선형회귀분석[신경망기초] 선형회귀분석
[신경망기초] 선형회귀분석
 
[신경망기초] 오류역전파알고리즘
[신경망기초] 오류역전파알고리즘[신경망기초] 오류역전파알고리즘
[신경망기초] 오류역전파알고리즘
 
[신경망기초] 멀티레이어퍼셉트론
[신경망기초] 멀티레이어퍼셉트론[신경망기초] 멀티레이어퍼셉트론
[신경망기초] 멀티레이어퍼셉트론
 

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