visual c++ 툴 사용 설명

6
2Microsoft Windows and Visual C++ 2. Microsoft Windows and Visual C++ 2.1. The Windows Programming Model 2.1.1. Message Processing 프프프프프 프프프프프, Windows 프 WinMain 프프프 프프프프. MFC 프프프 WinMain 프 프프프, 프프프 프프 프프프프프 프프프프프 프 프프 CWinApp 프 프프프프. 2.1.2. The Windows Graphics Device Interface 프프프프프프 프프 프프프 프프프프. 프프프프 프프프프 프프프프(device context)프프 프프프 프프프프 프프프프 GDI 프프프 프프프프. Windows 프 프프프프 프프프프 프프프프 프프프프 프프프 프프프프프 프프프 I/O 프프프 프프프. 2.1.3. Resource-Based Programming 프프프 프프프 프프프, 프프프, 프프, 프프프프프 프프 프프프프, 프프프프프 프프프프. 2.1.4. 메메메 메메 Win32 프프프 프프프프 프프프 프프프 프프프프 프프 프프프 프프 프프. 프프프프 프프 프프프프프 프프프프. 2.1.5. 메메 메메 메메메메메(Dynamic Link Library, DLLs) 프프프프 프프프프 프프프 프프프프프프프.

Upload: ktpktp

Post on 14-Sep-2014

135 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: VISUAL C++ 툴 사용 설명

2Microsoft Windows and Visual C++

2. Microsoft Windows and Visual C++

2.1. The Windows Programming Model

2.1.1. Message Processing

프로그램을 실행시키면, Windows 는 WinMain 함수를 호출한다.

MFC 에서는 WinMain 을 감추고, 메시지 처리 프로세스를 구조화시킬 수

있는 CWinApp 를 제공한다.

2.1.2. The Windows Graphics Device Interface

장치독립적인 함수 세트를 제공한다.

사용자는 디바이스 컨텍스트(device context)라는 데이타 구조체를

참조하는 GDI 함수를 호출한다.

Windows 는 디바이스 컨텍스트 구조체를 물리적인 장치에 맵핑시키고

적절한 I/O 명령을 내린다.

2.1.3. Resource-Based Programming

리소스 화일은 비트맵, 아이콘, 메뉴, 다이얼로그 박스 레이아웃,

스트링등을 포함한다.

2.1.4. 메모리 관리

Win32 에서는 사용자가 필요한 만큼의 메모리를 단지 할당만 하면 된다.

세부적인 것은 윈도우즈가 해결한다.

2.1.5. 동적 링크 라이브러리(Dynamic Link Library, DLLs)

실행시에 로드되는 동적인 라이브러리이다.

Page 2: VISUAL C++ 툴 사용 설명

2Microsoft Windows and Visual C++

여러 응용프로그램에서 공유할 수 있다.

프로그램의 모듈화를 높인다. 해당하는 DLL 만을 컴파일하고 테스트할 수

있다.

사용자가 직접 DLL 을 만들 수 있다.

2.1.6. Win32 API

Win32 API 함수들은 Win16 API 함수들과 거의 비슷하지만 16 비트 인자들이

상당수 32 비트로 바뀌었다는 점이 다르다. 그리고 Win32 API 에는 몇가지

새로운 함수들이 추가되었다.

2.2. The Visual C++ Components

Microsoft Visual C++는 두가지 개발시스템을 가지고 있다. 하나는 C 스타일의 Win32

프로그램을 작성하는 방법이고, 다른 하나는 C++과 MFC 를 사용하는 방법이다.

MFC 프로그래밍을 할 때 Win 32 API 를 직접 사용할 수 있다.

Page 3: VISUAL C++ 툴 사용 설명

2Microsoft Windows and Visual C++

2.3. Microsoft Developer Studio and the Build Process

Developer Studio

Code Compilation

Windowsheader files

Sourcefiles

Runtime header files

MFC headerfiles

Compiler

OBJ files

Resource Compilation

Resource scriptfile(RC)

Bitmaps, icons, andother resources

Resource Compiler

Resource

file(RES)

Resource.h

LinkerWindows, runtime, andMFC libraries

Executable(EXE)

Page 4: VISUAL C++ 툴 사용 설명

2Microsoft Windows and Visual C++

그림 1 비주얼 C++ 개발환경

Make file 은 소스화일들간의 관계를 나타내 주며, Make Program 은 make file

을 읽어, 컴파일러, 어셈블러, 링커, 리소스 컴파일러등을 invoke 시켜서 최종

실행화일을 만들 수 있도록 해준다.(Make file 은 아스키 화일로 되어 있다)

각 Visual C++ 프로젝트에는 make file(확장자 MAK)과 project Workspace 화일

(확장자 MDP)이 있으며, MDP 는 MAK 화일의 정보와 컴파일러와 링커의

스위치 세팅값을 가지고 있는 이진 화일이다.

2.4. 그래픽 에디터

Developer Studio 안에서 모든 표준 리소스들을 편집할 수 있다.

Build Target

Online documentation소스 코드

Project

WorkSpace

Compiler & linker output

Message

Page 5: VISUAL C++ 툴 사용 설명

2Microsoft Windows and Visual C++

RC 화일을 선택하면 바로 그래픽 에디터 상태로 들어갈 수 있다.

RC 화일을 외부에서 바꾸지 않는 것이 좋다.

2.5. Visual C++ 컴파일러

Visual C++은 확장자를 가지고 구분한다.

C++의 확장자는 CPP 내지는 CXX 이다.

2.6. 리소스 컴파일러

리소스 컴파일러는 RC 화일을 읽어서 이진화일인 RES 화일로 바꾸어준다.

2.7. 링커

링커는 컴파일러가 만들어준 OBJ 화일과 RES 화일을 LIB 화일과 결합시키고,

DLL 과 연결시켜 EXE 화일을 만들어 낸다.

2.8. 디버거

BreakPoint 를 설정하여 해당 부분에 멈추거나, 한 문장씩 수행해가며 값들을

추적해 볼 수 있다.

디버그를 하기전에 반드시 컴파일러와 링커의 옵션에서 디버깅 정보를 만들어

내도록 설정하여야 한다.

2.9. AppWizard

AppWizard 는 다이얼로그 박스를 통해 기술해준 소스코드 화일명과

클래스명과 같은 특성들을 가지고 윈도우즈 애플리케이션의 뼈대를 만들어

주는 역할을 한다.

OLE 콘트롤을 만들어줄 수 있는 기능이 추가되었다. (CDK 가 필요없다)

Page 6: VISUAL C++ 툴 사용 설명

2Microsoft Windows and Visual C++

2.10. ClassWizard

ClassWizard 는 새로운 클래스를 생성하거나, 새로운 가상함수를 만들어 주거나,

새로운 메시지 핸들링 함수를 만들거나 수정하는 작업들을 쉽게 만들어 준다.

2.11. The Source Browser

Source Browser 는 함수의 입장이 아니라 클래스나 함수의 관점에서

애플리케이션을 검사할 수 있도록 해준다.

다음과 같은 방법으로 변수나 함수, 클래스의 사용을 볼 수 있다.

(가) Definition and References(정의와 참조)

(나) Call Graph/ Caller Graph(함수의 호출관계도)

(다) Derived Class Graph/ Base Class Graph(클래스 계층도)

2.12. 온라인 도움말

아래의 네가지 방법으로 도움말을 볼 수 있다.

By Book - Project Workspace 창에서 InfoView 탭을 선택한다.

By Topic -주제어별로 묶여져 있다.( InfoView 옵션)

F1 Help - Case Sensitive Help

Search Help - 알파벳 순서로 해당항목을 찾아갈 수 있다.

2.13. 컴포넌트 갤러리

다른 유형의 프로젝트에서 소프트웨어 컴포넌트를 공유할 수 있다.

OLE Controls(OCX)

C++ Source Module - 리소스나 소스화일을 추가시킬 수 있다.

Wizard Module - 기존의 소스화일들의 내용까지도 바꾸어 줄 수 있다.