470 likes | 964 Views
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 개발 도구
E N D
Visual C++ 2008새로운 기능과 사용법 고재관 MicrosoftMVP myaustin@korea.com www.PDAlab.org myaustin.egloos.com
Agenda • 목표와전략 • 빌드 환경의 개선 • 관리형코드와 연계 • Vista UI 컨트롤 • Vista 공용 컨트롤 • MFC 9.0의 새로운 기능 • DEMO
VC++ 2008 • VC++ • Visual C ++ • MS C 7.0 이후의 Microsoft 개발 도구 • Microsoft 최초의 C++ 개발도구 • C/C++ 에 기반하여 Windows 16/32 API 사용 • Windows 응용프로그램 개발 도구 • 단독 실행 프로그램 제작 가능한 유일한 도구
VC++ 2008목표와 전략 • 목표 • 성공하는 다음 세대기술을 리드하는 세계적 네이티브 개발자 • 전략/ 수행 • 생산성과 적응력 향상을 위한 최신의 Visual C++ • 안전하고 빠른 최신 개발 기술을 위한 네이티브 라이브러리 투자 • 네이티브와관리형 코드간의 마찰 없는 융합기술
VC++ 2008지속적지원 • VC++ 컴파일러 기능향상 • 추가 기능지원 • MFC 기능 지원 및 수정보완 • Vista 및 Office UI 기능 확장 • 관리형 코드와의 원활한 연동을 위한 마샬링 지원
VC++ 2008개발 Focus • Windows Vista 개발 • Vista 응용프로그램 개발을 MFC에서 간단한 작업으로 빠른 구현 • 빌드(Build) 시간 개선 • 병렬빌드 및 네이티브-관리형코드빌드 시간 단축 • 관리형 코드 연결 • 관리형 코드 포함 또는 기존 관리형 코드 연결 개선
VC++ 2008개선된 기능 • 프로젝트 • 솔루션 열기 속도 향상 • 컴파일 속도 개선 • 관리형 코드/ 네이티브 코드 증분빌드 속도 향상 • 병렬파일 지원 • UI • Vista 지원 Control 추가 • MFC 기능추가 • C++ • STL/CLI 지원 • 표준 C++지원 강화 • TR1 지원 추가
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 • 최상의 결과를 얻기 위한 설정
VC++ 2008UAC 노출 응용 프로그램 생성 • Linker /MANIFESTUAC[:{NO|”fragment”}] • Project Properties Linker Manifest File • Project Upgrade • UAC는 커지고 레벨은 “asInvoker” 로 설정함
VC++ 2008UAC 컴플라이언스 • 기본적으로 HKCU로 ATL COM 등록 • HKLM 레지스트리 선택 • IE7 보호 모드 디버깅 지원 • 디버거런처: Web Browser Debugger
VC++ 2008Class 디자이너 지원 • Class Designer • MFC로 되어 있는 현재의 코드만 비주얼 화
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”; } } 마지막 빌드 후 중요한 변경 없이 프로젝트 스킵
Project Properties General Enable Managed Incremental Build • 기본적으로 On • Property 쉬트에서 접근 가능 • 관리형브릿지 지원 • 관리형코드를 C++ 응용프로그램에서 쉽게 사용 지원 • Marshaling 라이브러리 지원 • STL/CLR 라이브러리 지원
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 미지원 및 일부 수학함수 지원 불가
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); … }
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( ) ); …}
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 컨트롤 사용법에 대한 문서 지원
VC++ 2008새로운 MFC 라이브러리 UX • Visual Studio IDE 지원
VC++ 2008메뉴바숨김기능MFC 지원 • CFrameWnd Class에 새로운 매소드 추가됨 • 2개의 매소드를 통해 프로그램 실행중 동적으로 메뉴를 보이거나 숨김 기능 동작 • 2개의 이벤트 핸들러를 통해 메뉴상태에 다른 코드 적용가능 • MDI, 다이얼로그에서는 지원 안 함 virtual void CFrameWnd::SetMenuBarVisibility(DWORD nStyle); virtual DWORD CFrameWnd::GetMenuBarVisibility();
VC++ 2008Vista 에서새로운 컨트롤 추가 지원 • 공용 파일 다이얼로그 • Vista 형태의 다이얼로그 기본 지원 • Shell Interface 형태 Component 호출 • IFileOpenDialog , IFileSaveDialog , IFileDialogEvents • 기존 API형태도 유지되나 기본호출 되지 않음 • GetOpenFileName , GetSaveFileName , OnNotify • 페이져 컨트롤 • 양 끝 방향버튼으로 버튼 페이지 구성 • MFC에서는 CPagerCtrl Class
VC++ 2008Vista 에서 새로운 컨트롤 추가 지원 • 네트워크 주소 지정 컨트롤 • 네트워크 주소 입력. • IPv4, IPv6, DNS의 유효성검사 • MFC에서는 CNetAddressCtrl Class • Command 버튼 • 아이콘, 노트 같은 커다란 버튼 지원 • MFC에서는 CButton Class로 연동 • Split 버튼 • 여러 명령 집합 묶음 버튼 • MFC에서는 CSplitButton Class • SysLink컨트롤 • MFC에서는 CLinkCtrlClass
VC++ 2008 Demo
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라이브러리
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 기타…
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
MFC리본바 CMFCRibbonApplicationButton CMFCRibbonQuickAccessToolBar CMFCRibbonCategory CMFCRibbonBar CMFCRibbonPanel CMFCRibbonColorButton CMFCRibbonButton
MFCVisualManager • 응용프로그램을 화려하게 구성 • UI 구성 코드를 한곳에 집중. • toolbars, buttons, menus, ribbons, docking panes, 기타… • 실행 중에 다른 스킨으로 변경 • Office XP • Native Windows XP/Windows Vista • Office 2003 • Visual Studio 2005 • Office 2007 (색상 스키마)
MFC 새로운 기능 Demo
릴리즈 • 정식버전 • 2008년 3월 예정 • RC버전 • 2007년 12월 릴리즈 • 웹사이트를 통해 다운로드 가능 • 추가 탑재예정 • MFC update • TR1
다음버전 • VC++ 10 • 네비티브코드 기반 개발자를 위한 강력한 기능 • Office & Windows UI 구현메이져 역할 예) Office 14 & Windows 7 • Windows 새로운 기능에 변화 예) Search & Organize Restart Manager Power Management • 네이티브와관리형 코드간의 융합에 포커스
결론 • 빌드환경 개선 • Vista 기반 지원 강화 • MFC 기능 지원 강화 • 네이티브 개발에 대한 지원 지속 • VC++ 2008을 통해 새로운 기술 및가능성제시 VC++ 2008 지속성장
관련자료 • 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/
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!
최근의 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