Visual C++ 2008 Feature Pack www.anycoding.com Furyheimdall.tistory.com.

Slides:



Advertisements
Similar presentations
For Android 이재원.  페이스북 SDK 설치  2 가지 예제 & 소스  API 사용 예제 프로젝트 만들기  Graph API  참고사항 & 사이트.
Advertisements

Visual C 새로운 기능과 사용법 고재관 Microsoft MVP myaustin.egloos.com.
역할 Web 을 이용한 사전검색 SAMI Parser Character Recognition 통합 및 테스트 카메라 HW 제작 역할 DirectShow 동영상 재생 SAMI 분석 Database 모듈 구현 클래스 설계 Database 설계.
YES C 제 1 장 C 언어의 개요 1/34 제 1 장 C 언어의 개요 문봉근. YES C 제 1 장 C 언어의 개요 2/34 제 1 장 C 언어의 개요 1.1 프로그램과 C 언어의 특징 1.2 C 언어의 프로그램 구성 1.3 비주얼 C++ 통합 환경 들어가기.
Computer Graphics 윈도우 프로그래밍 김 창 헌김 창 헌. Computer Graphics 2 윈도우 시스템  윈도우  스크린 위에서 독립적으로 움직일 수 있는 사각형 영역  윈도우 시스템  유저와 어플리케이션간의 그래픽 스크린을 통한 인터페이스 를.
미디어 프로그래밍 II 소개.
3. C++와 객체지향 C++ 코딩 방법 객체 단위로 2 개의 파일 인터페이스 파일 구현파일
Vision System Lab, Sang-Hun Han
C++ Tutorial 1 서강대학교 데이터베이스 연구실.
Lamda on AVR C/C++ 최신 표준과 임베디드의 접목.
Power C++ 제6장 포인터와 문자열.
C++ Espresso 제3장 배열과 포인터.
C++ Espresso 제3장 배열과 포인터.
제1장 C#의 기초 1.1 .NET Framwork 1.2 .NET Environment 1.3 C# 소개.
C++ Espresso 제1장 기초 사항.
C++ Espresso 제2장 제어문과 함수.
강좌명 : C++프로그래밍 (C++ Programming)
네트워크 프로그래밍 <네트워크 주문 프로그램 V1.00 >
제6장 객체배열과 벡터 객체 배열을 이해한다. 벡터(vector) 클래스를 사용할 수 있다.
제 6 장 데이터 타입 6.1 데이터 타입 및 타입 정보 6.2 타입의 용도 6.3 타입 구성자 6.4 사례 연구
Internet Computing KUT Youn-Hee Han
8. 객체와 클래스 (기본).
C++ Espresso 제9장 다형성.
10장 템플릿과 표준 템플릿 라이브러리(STL)
OpenGL Project (3D 움직이는 자동차)
C++ Espresso 제6장 생성자와 소멸자.
윤성우의 열혈 C++ 프로그래밍 윤성우 저 열혈강의 C++ 프로그래밍 개정판 Chapter 03. 클래스의 기본.
[INA240] Data Structures and Practice
GUI Programming - Part 2 ( GUI for Python - wxPython )
3장. 포인터, 배열, 구조체 포인터, 배열, 구조체 학습목표 기본적 데이터 타입
Visual C++ Programming
명품 C++ 7장 프렌드와 연산자 중복.
Visual C++ Programming Common Controls
18장. 헤더 파일과 구현 파일 01_ 헤더 파일과 구현 파일의 사용.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
C++ Programming: Sample Programs
C ++ 프로그래밍 시작.
openGL Project 결과보고서 야구 시구 시뮬레이션
C++ 개요 객체지향 윈도우즈 프로그래밍 한국성서대학교 유일선
스택(Stack) 김진수
openGL Project 제안서 비 오는 정류장에서
명품 C++ 프로그래밍 1장. C++ 시작.
C++ 프로그래밍 년 2학기 전자정보공학대학 컴퓨터공학부.
adopted from KNK C Programming : A Modern Approach
OpenCV 설치 및 구성 OpenCV
가상함수와 추상 클래스.
제2장 제어구조와 배열 if-else 문에 대하여 학습한다. 중첩 if-else 문에 대하여 학습한다.
Introduction to Programming Language
Internet Computing KUT Youn-Hee Han
루프와 카운트 Looping and counting
제8장 포인터와 동적객체 생성 포인터의 개념을 이해한다. 포인터와 관련된 연산을 이해한다.
비주얼 프로그래밍(2분반) 강의노트 2분반 = 월/목.
C89(C++03) 프로그래밍 (Part 2) 7 배열 8 변수 범위 9 포인터 10 유도 자료형.
5. 논리적 자료표현 : 구조체.
openGL Project 제안서 - 해상 전투
Signature, Strong Typing
제 11장. 템플릿과 STL 학기 프로그래밍언어및실습 (C++).
3장,4장 발표 서정우.
03. 메모리 관리 C++ 프로그램에서 다룰 수 있는 메모리의 종류
C++ Espresso 제13장 입출력과 파일처리.
Signature, Strong Typing
포인터와 배열 조 병 규 한 국 교 통 대 학 교 SQ Lab..
Ch16_표준 템플릿 라이브러리.
창 병 모 숙명여대 전산학과 자바 언어를 위한 CFA 창 병 모 숙명여대 전산학과
자료구조 세미나 발표 주제: 자료구조 기초 - 1회 차: 자료구조의 정의, 기초 지식 (함수, 포인터, 레퍼런스)
10장 템플릿과 표준 템플릿 라이브러리(STL)
캡슐화 (Encapsulation) 두원공과대학 소프트웨어개발과 이 원 주.
실습과제 1번 /* 1. 멤버 변수로 반경 radius를 갖고, 그 값을 모니터에 출력하는
C++ 언어의 특징
발 표 자 : 7조 손 창 국 윤 오 성, 박 진 완 객체 지향 프로그래밍 C++
Presentation transcript:

Visual C++ 2008 Feature Pack www.anycoding.com Furyheimdall.tistory.com

Contents 1 Overview 2 MFC Update 3 C++ TR1 4 Q&A Company Logo www.anycoding.com / furyheimdall.tistory.com Company Logo

Overview What’s a Visual C++ Feature Pack? System Requirements MFC의 Update버전인 MFCNext와 C++0x 표준에 들어갈 TR1의 지원이 포함된 업그레이드 팩 -MFCNext : http://en.wikipedia.org/wiki/Microsoft_Foundation_Class_Library -TR1 : http://en.wikipedia.org/wiki/Technical_Report_1 System Requirements Supported Operating Systems: Windows Server 2003; Windows Vista; Windows XP Visual Studio: This Feature Pack is only supported on systems which have the English language (ENU) version of Visual Studio 2008 Standard Edition or above installed. Support for systems with non-English versions of Visual Studio 2008 installed will be available in Visual Studio 2008 Service Pack 1. www.anycoding.com / furyheimdall.tistory.com Company Logo

MFC Update Office Ribbon style interface Office 2007, Office 2003 and Office XP look and feel Modern Visual Studio-style docking toolbars and panes Fully customizable toolbars and menus A rich set of advanced GUI controls Advanced MDI tabs and groups And much more www.anycoding.com / furyheimdall.tistory.com Company Logo

Office Ribbon style interface MFC Update (Continue) Office Ribbon style interface www.anycoding.com / furyheimdall.tistory.com Company Logo

Office 2007, Office 2003 and Office XP look and feel MFC Update (Continue) Office 2007, Office 2003 and Office XP look and feel (Visual Manager) Windows Explorer Project Style + Visual Studio 2005 Visual Style Visual Studio Project Style+ Visual Studio 2005 Visual Style Office Project Style + Office Visual Style www.anycoding.com / furyheimdall.tistory.com Company Logo

MFC Update (Continue) Modern Visual Studio-style docking toolbars and panes (Smart Docking) www.anycoding.com / furyheimdall.tistory.com Company Logo

Fully customizable toolbars and menus MFC Update (Continue) Fully customizable toolbars and menus www.anycoding.com / furyheimdall.tistory.com Company Logo

Advanced MDI tabs and groups MFC Update (Continue) Advanced MDI tabs and groups MDI Tabbed Standard MDI Tabbed Group :Default www.anycoding.com / furyheimdall.tistory.com Company Logo

C++ TR1 C++ 라이브러리 작업 그룹이 작성한 1차 기술 보고서 (Technical Report 1) http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf * Finialize 되지 않은 Draft 규격 Smart pointers(Shared_ptr) Regular expression parsing New containers (tuple, array, unordered set, etc) Sophisticated random number generators Polymorphic function wrappers Type traits And more! www.anycoding.com / furyheimdall.tistory.com Company Logo

C++ TR1 (Continue) shared_ptr 자원의 라이프타임을 관리하는 일은 대부분 프로그램에서 발생하는 공통적인 문제. 자원관리 문제를 해결하기 위해서 사용할 수 있는 방법 - 자동변수 (Resource acquisition is initialization) - Garbage Collection 사용 모든 경우에 적용은 불가능. - RAII는 자원의 라이프타임이 정적으로 정해질 수 있고, 프로그램의 lexical 구 조에 맞아 떨어질때 쓸수 있음. - Garbage Collection 은 메모리 관리에는 적합하지만 다른 자원에는 필요 이 상으로 복잡한 해결책. 이에 대한으로 참조 카운트 smart point 의 등장. www.anycoding.com / furyheimdall.tistory.com Company Logo

shared_ptr (Continue) C++ TR1 (Continue) shared_ptr (Continue) 참조 카운트 포인터의 기본 아이디어 - raw 포인터를 사용하지 않고 포인터 "처럼 보이는" wrapper 클래스를 사용. - *연산자로 dereference 가 가능하며, ->연산자로 멤버에 접근 가능. Raw포인터와 차이점 wrapper 클래스는 몇가지 기본 연산과 생성자, 소멸자, 할당 연산자를 정의해서 특정 객체에 대한 소유자의 정보를 유지 C++ 은 TR1은 참조카운트 smart pointer 로 shared_ptr 를 제공 www.anycoding.com / furyheimdall.tistory.com Company Logo

C++ TR1 (Continue) Shared_ptr example Company Logo #include <memory> #include <iostream> using namespace std; using namespace std::tr1; class TClass { public: TClass(){} void DeleteObject(){ cout << “DeleteObject" << endl; } private: ~TClass(){ } }; void TClassDeleter(TClass *p) p->DeleteObject(); int main() { shared_ptr<int> ptr0; shared_ptr<int> ptr1(new int(18)); cout << "ptr0 address : " << ptr0 << endl; cout << "ptr1 dereference : " << *ptr1 << endl; shared_ptr<TClass> ptr2(new TClass, TClassDeleter); shared_ptr<TClass> ptr3(ptr2); return (0); } www.anycoding.com / furyheimdall.tistory.com Company Logo

C++ TR1 (Continue) New containers tuple : STL pair의 확장판. pair은 항상 두 객체를 하나로 묶어야 할 경우에 유용. (ex:함수가 여러개의 값을 리턴할 때) but, 꼭 두개의 값을 묶을 때만 pair 을 쓸 수 있는 것은 제약이 심함. TR1은 2개 이상의 객체를 하나로 묶을 수 있는 컨테이너로 tuple을 도입 array: C/C++ 기본 배열을 사용하게 되면 길이를 비롯해서 불편한 점이 많음. 일반적으로 TR1 전에는 std::vector 을 대신해서 사용. TR1에는 array 클래스가 도입. 기존 STL 알고리즘과 호환되는 면에서 장점. www.anycoding.com / furyheimdall.tistory.com Company Logo

New containers (Continue) C++ TR1 (Continue) New containers (Continue) Unordered Associative Containers: TR1에서 4개의 연관 컨테이너(Associative Containers)추가 - unordered_set - unordered_multiset - unordered_map - unorderd_multimap -TR1에서 새로 추가된 순서없는 컨테이너는 기존 컨테이너 보다 검색속도가 빠름 -다른 STL 컨테이너와 마찬가지로 동일한 요소들만 허용. www.anycoding.com / furyheimdall.tistory.com Company Logo

Polymorphic function wrappers C++ TR1 (Continue) Polymorphic function wrappers problem) A타입과 B 타입의 인자를 취하고 C 타입을 리턴하는 뭔가를 작성. solve) 1. 일반 함수로 작성 f(A a, B b) {...} 2. A를 별도 클래스로 작성했다면 멤버함수로 작성 class A { ... C g(B b); }; 3. std::plus<T> 처럼 함수 객체로 작성 struct h{ C Operator()(A,B) const{...} www.anycoding.com / furyheimdall.tistory.com Company Logo

Polymorphic function wrappers (Continue) C++ TR1 (Continue) Polymorphic function wrappers (Continue) 이전의 방법들은 서로 문법이나 의미론에서나 차이가 있음. AxB->C 라는 같은 처리를 하는데 세 가지 다른 방법이 있는데, 언어 입장에서 보면 이전 페이지의 세가지 방법은 모두 다른 타입. 이런 다른 방법을 하나의 타입으로 표현하기 위해 function wrapper 클래스 도입 function<C(A,B)> 이라는 타입은 A와 B 를 취하고, C 를 리턴하는 어떤 함수 (일반함수, 멤버함수, 함수객체) 라도 표현할 수 있음. -> 이것은 상위 라이브러리가 사용자가 넘겨준 callback 을 담고 있을 일관된 매커니즘을 갖게 됨. www.anycoding.com / furyheimdall.tistory.com Company Logo

Polymorphic function wrappers Example C++ TR1 (Continue) Polymorphic function wrappers Example #include <tr1/functional> #include <vector> #include <iostream> using namespace std; using namespace std::tr1; struct my_class {   void f() { cout << "my_class::f()“ << endl; } }; void g(my_class) {   cout << "g(my_class)" << endl; } struct h {   void operator()(my_class) const {     cout << "h::operator()(my_class)" << endl;   } }; int main() {   typedef function<void(my_class)> F;   vector<F> ops;   ops.push_back(&my_class::f);   ops.push_back(&g);   ops.push_back(h());   my_class tmp;   for (vector<F>::iterator i = ops.begin();        i != ops.end();        ++i)     (*i)(tmp); } www.anycoding.com / furyheimdall.tistory.com Company Logo

Q&A www.anycoding.com Furyheimdall.tistory.com

Appendix : Standard C++ Library TR1 Extensions Reference TR1 Regular Expressions ( TR1 정규 식들(Expressions)  ) Discusses the grammars of the various regular expression engines that TR1 supports. ( TR1을 지원하는 다양한 정규식 표현 엔진의 문법을 의논하다 ) <array> Defines the container template class array and several supporting templates. (  컨테이너 템플릿 클래스 배열과 몇개의 템플릿을 원조하는 것을 정의한다 ) <functional> (TR1) Defines several templates that help construct function objects, which are objects of a type that defines operator(). A function object can be a function pointer, but more typically, the object is used to store additional information that can be accessed during a function call. ( 몇개의 조립을 도와주는 operator()를 정의하는 타입의 객체인 함수객체인 템플릿  정의한다.  함수 객체는 포인터할수 있수 있으나 더 전형적으로는 객체는 함수를 부르는 동안 접근할 수 있는 추가적인 정보를 저장하는데 익숙하다. ) www.anycoding.com / furyheimdall.tistory.com Company Logo

Appendix : Standard C++ Library TR1 Extensions Reference <memory> (TR1) Defines a class, an operator, and several templates that help allocate and free objects. ( 클래스, 오퍼레이터, 그리고 몇개의 할당과 해제 객체를 돕는 템플릿을 정의한다. ) <random> Defines many random number generators. ( 많은 보편적인 랜덤 수를 정의한다. ) <regex> Defines a template class to parse regular expressions, and several template classes and functions to search text for matches to a regular expression object. ( 정규식 표현과 몇개의 템플릿 클래스들 그리고 정규식 표현 객체에 맞춤을 위한 문서찾기 함수를 분석하는 템플릿 클래스를 정의한다.) <tuple> Defines a template tuple Class whose instances hold objects of varying types. ( 템플릿 각지각색의 타입의 객체를 붙잡는 인스턴스인 tuple class 정의한다. ) <type_traits> Defines templates that provide compile-time constants that give information about the properties of their type arguments. ( 컴파일 시간에 불변하는 그들의 타입 논의의 소유물에 관한 정보를 주는 것을 제공하는 템플릿을 정의한다. ) www.anycoding.com / furyheimdall.tistory.com Company Logo

Appendix : Standard C++ Library TR1 Extensions Reference <unordered_map> Defines the container template classes unordered_map and unordered_multimap and their supporting templates. ( 컨테이너 템플릿 클래스 unordered_map 과 unordered_mulitmap 과 그들의 지원하는 템플릿들을 정의한다. ) <unordered_set> Defines the container template classes unordered_multiset and unordered_set and their supporting templates. ( 컨테이너 템플릿 클래스 unordered_multiset 과 unordered_set 과 그들의 지원하는 템플릿들을 정의한다. ) <utility> (TR1) Defines several general templates that can be used throughout the Standard Template Library. ( 몇개의 표준 템플릿 라이브러리 전부를 사용할 수 있는 보편적인 템플릿을 정의한다. ) www.anycoding.com / furyheimdall.tistory.com Company Logo

Appendix : Reference site MSDN TR1 http://msdn.microsoft.com/en-us/library/bb982198.aspx Zeroone http://zeroone.tistory.com Me http://furyheimdall.tistory.com 김윤수의 이상계를 꿈꾸며 http://yesarang.tistory.com/ 섭스의 프로그래밍 공부 http://sclove12.tistory.com www.anycoding.com / furyheimdall.tistory.com Company Logo