1 / 46

Visual C++ 2008 새로운 기능과 사용법

Visual C++ 2008 새로운 기능과 사용법. 고재관 Microsoft MVP myaustin@korea.com www.PDAlab.org myaustin.egloos.com . Agenda. 목표와 전략 빌드 환경의 개선 관리형코드와 연계 Vista UI 컨트롤 Vista 공용 컨트롤 MFC 9.0 의 새로운 기능 DEMO. VC++ 2008. VC++ 2008. VC++ Visual C ++ MS C 7.0 이후의 Microsoft 개발 도구

lela
Download Presentation

Visual C++ 2008 새로운 기능과 사용법

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visual C++ 2008새로운 기능과 사용법 고재관 MicrosoftMVP myaustin@korea.com www.PDAlab.org myaustin.egloos.com

  2. Agenda • 목표와전략 • 빌드 환경의 개선 • 관리형코드와 연계 • Vista UI 컨트롤 • Vista 공용 컨트롤 • MFC 9.0의 새로운 기능 • DEMO

  3. VC++ 2008

  4. VC++ 2008 • VC++ • Visual C ++ • MS C 7.0 이후의 Microsoft 개발 도구 • Microsoft 최초의 C++ 개발도구 • C/C++ 에 기반하여 Windows 16/32 API 사용 • Windows 응용프로그램 개발 도구 • 단독 실행 프로그램 제작 가능한 유일한 도구

  5. VC++ 2008버전

  6. VC++ 2008목표와 전략 • 목표 • 성공하는 다음 세대기술을 리드하는 세계적 네이티브 개발자 • 전략/ 수행 • 생산성과 적응력 향상을 위한 최신의 Visual C++ • 안전하고 빠른 최신 개발 기술을 위한 네이티브 라이브러리 투자 • 네이티브와관리형 코드간의 마찰 없는 융합기술

  7. VC++ 2008지속적지원 • VC++ 컴파일러 기능향상 • 추가 기능지원 • MFC 기능 지원 및 수정보완 • Vista 및 Office UI 기능 확장 • 관리형 코드와의 원활한 연동을 위한 마샬링 지원

  8. VC++ 2008개발 Focus • Windows Vista 개발 • Vista 응용프로그램 개발을 MFC에서 간단한 작업으로 빠른 구현 • 빌드(Build) 시간 개선 • 병렬빌드 및 네이티브-관리형코드빌드 시간 단축 • 관리형 코드 연결 • 관리형 코드 포함 또는 기존 관리형 코드 연결 개선

  9. VC++ 2008개선된 기능 • 프로젝트 • 솔루션 열기 속도 향상 • 컴파일 속도 개선 • 관리형 코드/ 네이티브 코드 증분빌드 속도 향상 • 병렬파일 지원 • UI • Vista 지원 Control 추가 • MFC 기능추가 • C++ • STL/CLI 지원 • 표준 C++지원 강화 • TR1 지원 추가

  10. VC++ 2008/MP 컴파일러 스위치 지원 • cl.exe 용 멀티 프로세스 빌드 • /MP 또는 /MPn (n은 CPU의 개수) • Project Properties  C/C++  Command Line  Additional options • Multi-proc 프로젝트 빌드 에서 동작 • Tools  Options  Project and Solutions  Build and Run  parallel project builds • 최상의 결과를 얻기 위한 설정

  11. VC++ 2008UAC 노출 응용 프로그램 생성 • Linker /MANIFESTUAC[:{NO|”fragment”}] • Project  Properties  Linker  Manifest File • Project Upgrade • UAC는 커지고 레벨은 “asInvoker” 로 설정함

  12. VC++ 2008UAC 컴플라이언스 • 기본적으로 HKCU로 ATL COM 등록 • HKLM 레지스트리 선택 • IE7 보호 모드 디버깅 지원 • 디버거런처: Web Browser Debugger

  13. VC++ 2008Class 디자이너 지원 • Class Designer • MFC로 되어 있는 현재의 코드만 비주얼 화

  14. VC++ 2008관리형코드증분빌드 A.Dll … ClassB b; b.f() … A.dll B.meta B.dll B.meta(*) B.Dll public ref class ClassB { public String f() { //important string here return “Important String”; } } 마지막 빌드 후 중요한 변경 없이 프로젝트 스킵

  15. Project  Properties  General  Enable Managed Incremental Build • 기본적으로 On • Property 쉬트에서 접근 가능 • 관리형브릿지 지원 • 관리형코드를 C++ 응용프로그램에서 쉽게 사용 지원 • Marshaling 라이브러리 지원 • STL/CLR 라이브러리 지원

  16. VC++ 2008TR1 • TR1(1st Library Extension) • The Technical Report on C++ Library Extensions • Boost derived classes • tr1::shared_ptr • tr1::function, tr1::mem_fn, tr1::bind • tr1::regex • tr1::tuple, tr1::array, unordered containers (hash-based) • tr1::type_traits • 난수 발생 제네레이터 • ANSI C99 미지원 및 일부 수학함수 지원 불가

  17. VC++ 2008마샬링 라이브러리 지원 • 네이티브 코드로부터 데이터형태로 마샬링 지원 • 관리형 코드와 네이티브 코드 사이의 데이터 타입 마샬링 • 마샬링컨텍스트를미요구변환마샬링 • 사용자에 의한 미지원 기능 확장 가능 #include <msclr/marshal.h> using namespace msclr::interop; … { … System::String^ sourcestring1 = “teststring” const char* deststring1; //Convert System::String^ to const char* using //TO to = context.marshal_as<TO>(from) marshal_contextctx; deststring1 = ctx.marshal_as<const char*>(sourcestring1); … } #include <msclr/marshal.h> using namespace msclr::interop; … { … const char* sourcestring1 = “teststring” System::String^ deststring1; //Convert const char* to System::String^ using // TO to = marshal_as <TO> (from) deststring1 = marshal_as<System::String^>(sourcestring1); … }

  18. VC++ 2008STL/CLR 라이브러리 변경 사항 • .NET Framework 사용 응용프로그램 STL 공용사용 • STL 및 .NET 컬렉션 사이에 데이터 교환 • 템플릿 및 지네릭을 동시에 사용 • 최상의 성능 향상 및 크로스-언어 호환성 성취 디자인 • 관리형 코드의 어떤 한 부분에서의 STL 지원 #include <cliext/hash_map> #include <cliext/algorithm> void myFunction() { … cliext::hash_map<Int32, String^> myMap; myMap.insert(cliext::make_pair(5,gcnew String("String1"))); cliext::hash_map<Int32,String^>::iterator itFive= myMap.find(5); … cliext::vector<String^> v4; cliext::random_shuffle( v4.begin( ), v4.end( ) ); …}

  19. VC++ 2008Windows Vista UI 지원 • 신규 추가 기능 • 새로운 시스템 폰트 (Segoe UI) 지원 • Aero 테마 API 지원 • 추가 Common 컨트롤 및 추가 Common 다이얼로그 지원 • Glass 모든 기능 지원 • Windows Vista 스타일 및 특성과 동등한 아이콘 및 그래픽 생성 • 다이얼로그 박스 및 에러 메시지를 Task 다이얼로그로 교체 • 새로운 Windows Vista UX Guidelines 규격에 맞게 정렬 • 향상 기능 • 새로운 컨트롤, 이벤트, 공지 및 스타일에 대한 MFC 지원 • 새로운 컨트롤에 대한 Dialog Editor 지원 • Windows Vista UX 가이드라인에 맞는 다이얼로그 템플릿 지원 • Windows Vista UX 컨트롤 사용법에 대한 문서 지원

  20. VC++ 2008새로운 MFC 라이브러리 UX • Visual Studio IDE 지원

  21. Office 리본바 지원

  22. VC++ 2008메뉴바숨김기능MFC 지원 • CFrameWnd Class에 새로운 매소드 추가됨 • 2개의 매소드를 통해 프로그램 실행중 동적으로 메뉴를 보이거나 숨김 기능 동작 • 2개의 이벤트 핸들러를 통해 메뉴상태에 다른 코드 적용가능 • MDI, 다이얼로그에서는 지원 안 함 virtual void CFrameWnd::SetMenuBarVisibility(DWORD nStyle); virtual DWORD CFrameWnd::GetMenuBarVisibility();

  23. VC++ 2008Vista 에서새로운 컨트롤 추가 지원 • 공용 파일 다이얼로그 • Vista 형태의 다이얼로그 기본 지원 • Shell Interface 형태 Component 호출 • IFileOpenDialog , IFileSaveDialog , IFileDialogEvents • 기존 API형태도 유지되나 기본호출 되지 않음 • GetOpenFileName , GetSaveFileName , OnNotify • 페이져 컨트롤 • 양 끝 방향버튼으로 버튼 페이지 구성 • MFC에서는 CPagerCtrl Class

  24. VC++ 2008Vista 에서 새로운 컨트롤 추가 지원 • 네트워크 주소 지정 컨트롤 • 네트워크 주소 입력. • IPv4, IPv6, DNS의 유효성검사 • MFC에서는 CNetAddressCtrl Class • Command 버튼 • 아이콘, 노트 같은 커다란 버튼 지원 • MFC에서는 CButton Class로 연동 • Split 버튼 • 여러 명령 집합 묶음 버튼 • MFC에서는 CSplitButton Class • SysLink컨트롤 • MFC에서는 CLinkCtrlClass

  25. VC++ 2008 Demo

  26. MFC

  27. MFC • MFC • Microsoft Foundation Class Library • C++형태로 포장된 Windows API 클래스 라이브러리 • 1992년 MFC 1.0 • 마이크로소프트 C/C++ 7.0 처음탑재 • 관련 라이브러리 • 볼랜드 OWL (Object Windows Library) • 매킨토시 TCL (Think Class Library) • Mainsoft 유닉스용 MFC라이브러리

  28. MFC버전

  29. MFC구성요소 G 개발기술 UI 구현 범용기능 추가 예외처리 CWinApp Frames Visual Manager 탭지원 MDI 파일지원 Control Bars Office 리본바 문서/뷰 지원 Dialogs ToolBar, Menu, StatusBar 데이터베이스 도킹판(Docking Panes) Views Vista 공용 다이얼로그 OLE 지원 컨테이너 Window Controls Vista 공용 컨트롤 새로운 컨트롤 GDI Support 기타…

  30. MFC새로운 기능 • Vista 지원 Control Class 추가 • 데스크탑 통보 윈도우 추가 • Messenger , Outlook 2007 화면 우측 하단 팝업창 • 새로운 UI Control • 향상된 버튼 • Shell tree and list • 마스크를 지원하는 Edit Box • 프로퍼티리스트 (Property list) • 새로운 공용 Control • Command 버튼 Class • Split 버튼 Class • 네트워크 주소지정 컨트롤 Class • SysLink컨트롤 Class

  31. MFCDrawClient

  32. MFC탭지원MDI, 툴바 , 상태바

  33. MFC리본바

  34. MFC리본바 CMFCRibbonApplicationButton CMFCRibbonQuickAccessToolBar CMFCRibbonCategory CMFCRibbonBar CMFCRibbonPanel CMFCRibbonColorButton CMFCRibbonButton

  35. MFC도킹판(Docking Panes)

  36. MFCVisualManager • 응용프로그램을 화려하게 구성 • UI 구성 코드를 한곳에 집중. • toolbars, buttons, menus, ribbons, docking panes, 기타… • 실행 중에 다른 스킨으로 변경 • Office XP • Native Windows XP/Windows Vista • Office 2003 • Visual Studio 2005 • Office 2007 (색상 스키마)

  37. MFCVisualManager

  38. MFC 새로운 기능 Demo

  39. 릴리즈 • 정식버전 • 2008년 3월 예정 • RC버전 • 2007년 12월 릴리즈 • 웹사이트를 통해 다운로드 가능 • 추가 탑재예정 • MFC update • TR1

  40. 다음버전 • VC++ 10 • 네비티브코드 기반 개발자를 위한 강력한 기능 • Office & Windows UI 구현메이져 역할 예) Office 14 & Windows 7 • Windows 새로운 기능에 변화 예) Search & Organize Restart Manager Power Management • 네이티브와관리형 코드간의 융합에 포커스

  41. 결론 • 빌드환경 개선 • Vista 기반 지원 강화 • MFC 기능 지원 강화 • 네이티브 개발에 대한 지원 지속 • VC++ 2008을 통해 새로운 기술 및가능성제시  VC++ 2008 지속성장

  42. 관련자료 • VS 2008 Professional Trial Edition http://www.microsoft.com/downloads/details.aspx?FamilyID=83c3a1ec-ed72-4a79-8961-25635db0192b&DisplayLang=en • VC++ Blog http://blogs.msdn.com/vcblog/ • VC++ Libraries forums http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=8&SiteID=1 • Channel9 VC++ videos http://channel9.msdn.com/tags/C++ • BCGSoft http://www.bcgsoft.com/

  43. VC++ 팀블로그 관련내용 http://blogs.msdn.com/vcblog • Marshaling Library in Orcas • Visual Studio Express Orcas • Resource Editor Updates for Orcas • Visual C++ Orcas Feature Specifications online • Custom Wizards • MFC Updates for Vista Common Controls • Multi-processor builds in Orcas • Managed Incremental Build • An Update to STL/CLR is Complete!

  44. 최근의 Channel 9 영상들 http://channel9.msdn.com/tags/C++ • Steve Teixeira and Bill Dunlap: Visual C++ Today and Tomorrow • Nikola Dudar: STLCLR - STL Development in the Managed World • Marina Polishchuk: VC++ QA - The best job in the biz • SaritaBafna: VC++ "Orcas" - Marshaling Library and MFC support for Common Controls • Ale Contenti: VC++ Safe Libraries and More • Gordon Hogenson: Documenting Development Technologies

  45. Q&A

More Related