Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Visual C++ 2008Visual C++ 2008Visual C++ 2008새로운기능과사용법Visual C++ 2008새로운기능과사용법
고재관Microsoft MVPMicrosoft [email protected] www.PDAlab.org myaustin egloos commyaustin.egloos.com
AgendaAgenda
목표와 전략
gg
빌드 환경의 개선관리형코드와 연계관리형 와 연계Vista UI 컨트롤Vista 공용 컨트롤Vista 공용 컨트롤MFC 9.0의 새로운 기능DEMODEMO
VC++ 2008VC++ 2008VC++ 2008VC++ 2008
VC++ 2008VC++ 2008
VC++Visual C ++MS C 7.0 이후의 Microsoft 개발 도구Microsoft 최초의 C++ 개발도구Microsoft 최초의 C++ 개발도구C/C++ 에 기반하여 Windows 16/32 API 사용Windows 응용프로그램 개발 도구Windows 응용프로그램 개발 도구단독 실행 프로그램 제작 가능한 유일한 도구
VC++ 2008
버전VC++ 2008
버전버전버전
컴파일러버전 내부버전 통합제품컴파일러버전 내부버전 통합제품
Visual C++ 1.0 1.0Visual C++ 1.5 1.5Visual C++ 2.0 2.0Visual C++ 2.1 2.1Visual C++ 2.2 2.2Visual C++ 4.0 4.0Visual C++ 4.1 4.1Visual C++ 4.2 4.2Visual C++ 5.0 5.0 Visual Studio 97Visual C++ 6.0 6.0 Visual Studio 6.0 Visual C++ .NET 2002 7.0 Visual Studio .NET 2002Visual C++ .NET 2003 7.1 Visual Studio .NET 2003Visual C++ 2005 8.0 Visual Studio 2005Visual C++ 2008 9.0 Visual Studio 2008
VC++ 2008
목표와전략VC++ 2008
목표와전략목표
목표와전략목표와전략
성공하는 다음 세대기술을 리드하는 세계적 네이티브 개발자
전략/ 수행전략/ 수행생산성과 적응력 향상을 위한 최신의 Visual C++안전하고 빠른 최신 개발 기술을 위한 네이티브 라이브러리 투자안전하고 빠른 최신 개발 기술을 위한 네이티브 라이브러리 투자네이티브와 관리형 코드간의 마찰 없는 융합기술
VC++ 2008
지속적지원VC++ 2008
지속적지원지속적지원지속적지원VC++ 컴파일러 기능향상추가 기능지원MFC 기능 지원 및 수정보완기능 지원 및 수정 완Vista 및 Office UI 기능 확장관리형 코드와의 원활한 연동을 위한 마샬링 지원관리형 코드와의 원활한 연동을 위한 마샬링 지원
VC++ 2008
개발 FocusVC++ 2008
개발 FocusWindows Vista 개발
개발 Focus개발 Focus
Vista 응용프로그램 개발을 MFC에서 간단한 작업으로 빠른 구현
빌드(Build) 시간 개선병렬빌드 및 네이티브-관리형코드 빌드 시간 단축
관리형 코드 연결관리형 코드 포함 또는 기존 관리형 코드 연결 개선
VC++ 2008
개선된기능VC++ 2008
개선된기능개선된기능개선된기능프로젝트
솔루션 열기 속도 향상컴파일 속도 개선관리형 코드/ 네이티브 코드 증분빌드 속도 향상관리형 코드/ 네이티브 코드 증분빌드 속도 향상병렬컴파일 지원
UIUIVista 지원 Control 추가MFC 기능 추가기능 추가
C++STL/CLI 지원/ 지원표준 C++지원 강화TR1 지원 추가
VC++ 2008
/MP 컴파일러스위치지원/MP 컴파일러스위치지원cl.exe 용 멀티 프로세스 빌드
/MP 또는 /MPn (n은 CPU의 개수)Project Properties C/C++ Command Line Additional optionsoptions
Multi-proc 프로젝트 빌드 에서 동작Multi proc 프로젝트 빌드 에서 동작Tools Options Project and Solutions Build and Run parallel project builds최상의 결과를 얻기 위한 설정
VC++ 2008
UAC 노출응용프로그램생성UAC 노출응용프로그램생성Linker/MANIFESTUAC[:{NO|”fragment”}]
P j t P ti Li k M if t FilProject Properties Linker Manifest File
Project UpgradeProject UpgradeUAC는 커지고 레벨은 “asInvoker” 로 설정함
VC++ 2008
UAC 컴플라이언스UAC 컴플라이언스기본적으로 HKCU로 ATL COM 등록
HKLM 레지스트리 선택
IE7 보호 모드 디버깅 지원IE7 보호 모드 디버깅 지원디버거 런처 : Web Browser Debugger
VC++ 2008
Class 디자이너지원Class 디자이너지원Class Designer
MFC로 되어 있는 현재의 코드만 비주얼 화
VC++ 2008
관리형코드증분빌드관리형코드증분빌드
A.Dll A.dll
…ClassB b;b.f()
A.dll
()… B.meta
B.Dll
B.dll B.meta(*)
public ref class ClassB {public String f() {//important string here
마지막 빌드 후중요한 변경 없이 프로젝트 스킵// p g
return “Important String”;}
}
중 한 변경 없이 젝 킵
Project Properties General Enable Managed Incremental Build
기본적으로 OnP t 쉬트에서 접근 가능Property 쉬트에서 접근 가능
관리형 브릿지 지원관리형코드를 C++ 응용프로그램에서 쉽게 사용 지원관리형코드를 C++ 응용프로그램에서 쉽게 사용 지원Marshaling 라이브러리 지원STL/CLR 라이브러리 지원STL/CLR 라이브러리 지원
VC++ 2008
TR1VC++ 2008
TR1TR1TR1TR1(1st Library Extension)The Technical Report on C++ Library ExtensionsBoost derived classes
tr1::shared_ptr
tr1::function, tr1::mem_fn, tr1::bindtr1::regex
tr1::tuple, tr1::array, unordered containers (hash-based)tr1::type traitstr1::type_traits
난수 발생 제네레이터ANSI C99 미지원 및 일부 수학함수 지원 불가ANSI C99 미지원 및 일부 수학함수 지원 불가
VC++ 2008
마샬링라이브러리지원마샬링라이브러리지원네이티브 코드로부터 데이터형태로 마샬링 지원
관리형 코드와 네이티브 코드 사이의 데이터 타입 마샬링마샬링 컨텍스트를 미요구변환 마샬링
사용자에 의한 미지원 기능 확장 가능사용자에 의한 미지원 기능 확장 가능#include <msclr/marshal.h>using namespace msclr::interop;using namespace msclr::interop;…{
…System::String^ sourcestring1 = “teststring”System::String^ sourcestring1 = teststringconst char* deststring1;
//Convert System::String^ to const char* using //TO to = context marshal as<TO>(from)//TO to = context.marshal_as<TO>(from)marshal_context ctx;deststring1 = ctx.marshal_as<const char*>(sourcestring1);…
}}
VC++ 2008
STL/CLR 라이브러리변경사항VC++ 2008
STL/CLR 라이브러리변경사항.NET Framework 사용 응용프로그램 STL 공용사용
STL/CLR 라이브러리변경사항STL/CLR 라이브러리변경사항
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= cliext::hash_map<Int32,String^>::iterator itFive= myMap.find(5);
…
cliext::vector<String^> v4;
cliext::random_shuffle( v4.begin( ), v4.end( ) );
…}
VC++ 2008
Windows Vista UI 지원VC++ 2008
Windows Vista UI 지원Windows Vista UI 지원Windows Vista UI 지원신규 추가 기능
새로운 시스템 폰트 (Segoe UI) 지원Aero 테마 API 지원추가 Common 컨트롤 및 추가 Common 다이얼로그 지원추가 Common 컨트롤 및 추가 Common 다이얼로그 지원Windows Vista 스타일 및 특성과 동등한 아이콘 및 그래픽 생성다이얼로그 박스 및 에러 메시지를 Task 다이얼로그로 교체다이얼로그 박스 및 에러 메시지를 Task 다이얼로그로 교체새로운 Windows Vista UX Guidelines 규격에 맞게 정렬
향상 기능새로운 컨트롤, 이벤트, 공지 및 스타일에 대한 MFC 지원새로운 컨트롤에 대한 Dialog Editor 지원Windows Vista UX 가이드라인에 맞는 다이얼로그 템플릿 지원Windows Vista UX 컨트롤 사용법에 대한 문서 지원Windows Vista UX 컨트롤 사용법에 대한 문서 지원
VC++ 2008
새로운 MFC 라이브러리 UXVC++ 2008
새로운 MFC 라이브러리 UX새로운 MFC 라이브러리 UX새로운 MFC 라이브러리 UXVisual Studio IDE 지원
Office 리본바 지원
VC++ 2008
메뉴바숨김기능 MFC 지원VC++ 2008
메뉴바숨김기능 MFC 지원CFrameWnd Class에 새로운 매소드 추가됨
메뉴바숨김기능 MFC 지원메뉴바숨김기능 MFC 지원
virtual void CFrameWnd::SetMenuBarVisibility(DWORD nStyle);virtual DWORD CFrameWnd::GetMenuBarVisibility();
2개의 매소드를 통해 프로그램 실행중 동적으로메뉴를 보이거나 숨김 기능 동작메뉴를 이거나 숨김 기능 동작2개의 이벤트 핸들러를 통해 메뉴상태에 다른 코드적용가능적용가능MDI, 다이얼로그에서는 지원 안 함
VC++ 2008
Vista 에서새로운컨트롤추가지원Vista 에서새로운컨트롤추가지원공용 파일 다이얼로그
Vista 형태의 다이얼로그 기본 지원Shell Interface 형태 Component 호출
IFileOpenDialog IFileSaveDialog IFileDialogEventsIFileOpenDialog , IFileSaveDialog , IFileDialogEvents기존 API형태도 유지되나 기본호출 되지 않음
GetOpenFileName , GetSaveFileName , OnNotifyGetOpenFileName , GetSaveFileName , OnNotify
페이져 컨트롤페이져 컨트롤양끝 방향버튼으로 버튼 페이지 구성MFC에서는 CPagerCtrl Class에서는 g
VC++ 2008
Vista 에서새로운컨트롤추가지원Vista 에서새로운컨트롤추가지원네트워크 주소 지정 컨트롤
네트워크 주소 입력. IPv4, IPv6, DNS의 유효성검사MFC에서는 CNetAddressCtrl ClassMFC에서는 CNetAddressCtrl Class
Command 버튼아이콘 노트 같은 커다란 버튼 지원아이콘, 노트 같은 커다란 버튼 지원MFC에서는 CButton Class로 연동
Split 버튼Split 버튼여러 명령 집합 묶음 버튼MFC에서는 CSplitButton Class에서는 p
SysLink 컨트롤MFC에서는 CLinkCtrl Class에서
VC++ 2008VC++ 2008
MFCMFCMFCMFC
MFCMFC
MFCMicrosoft Foundation Class LibraryC++형태로 포장된 Windows API 클래스 라이브러리1992년 MFC 1 01992년 MFC 1.0마이크로소프트 C/C++ 7.0 처음 탑재
관련 라이브러리관련 라이브러리볼랜드 OWL (Object Windows Library)매킨토시 TCL (Think Class Library)매킨 시 ( y)Mainsoft 유닉스용 MFC라이브러리
MFC
버전MFC
버전버전버전
컴파일러버전 MFC 버전MS-C 7.0 MFC 1.0Visual C++ 1.0 MFC 2.0Visual C++ 1 5 MFC 2 5Visual C++ 1.5 MFC 2.5Visual C++ 2.0 MFC 3.0Visual C++ 2.1 MFC 3.1Visual C++ 2 2 MFC 3 2Visual C++ 2.2 MFC 3.2Visual C++ 4.0 MFC 4.0Visual C++ 4.1 MFC 4.1 MFC42.dllVisual C++ 4 2 MFC 4 2 MFC42 dllVisual C++ 4.2 MFC 4.2 MFC42.dllVisual C++ 5.0 MFC 4.21 MFC42.dllVisual C++ 6.0 MFC 6.0 MFC42.dllVisual C++ NET 2002 MFC 7 0Visual C++ .NET 2002 MFC 7.0Visual C++ .NET 2003 MFC 7.1Visual C++ 2005 MFC 8.0Visual C++ 2008 MFC 9 0Visual C++ 2008 MFC 9.0
MFC
구성요소MFC
구성요소
범용기능UI 구현개발기술
구성요소구성요소
Visual Manager
범용기능UI 구현개발기술
CWinApp예외처리
Frames
Control Bars
Visual Manager
탭지원 MDI
Office 리본바
G문서/뷰 지원
파일지원Dialogs
ToolBar, Menu, StatusBar
도킹판(Docking Panes)
데이터베이스Views
Window Controls
Vista 공용 다이얼로그
Vista 공용 컨트롤
OLE 지원 컨테이너GDI Support
새로운컨트롤
기타…
MFC
새로운기능MFC
새로운기능새로운기능새로운기능Vista 지원 Control Class 추가데스크탑 통보 윈도우 추가
Messenger , Outlook 2007 화면 우측 하단 팝업창
새로운 UI C t l새로운 UI Control향상된 버튼Shell tree and listShell tree and list마스크를 지원하는 Edit Box 프로퍼티 리스트 (Property list)
새 운 용 l새로운 공용 ControlCommand 버튼 ClassSplit 버튼 ClassSplit 버튼 Class네트워크 주소지정 컨트롤 ClassSysLink 컨트롤 Class
MFC
추가된매소드MFC
추가된매소드추가된매소드추가된매소드추가된 MFC Class 매소드
CMonthCalCtrl (19) , CButton (15) , CTreeCtrl (15) , CListCtrl (14) , CToolBarCtrl (9) , CProgressCtrl (8) ,CEdit (7) CComboBox (5) CDateTimeCtrl (5)CEdit (7) , CComboBox (5) , CDateTimeCtrl (5) , CHeaderCtrl (5) , CReBarCtrl (4) , CToolTipCtrl (4) , CSliderCtrl (2) , CStatusBarCtrl (1) ,CSliderCtrl (2) , CStatusBarCtrl (1) , CAnimateCtrl (1) , CLinkCtrl (1)
MFC
DrawClientMFC
DrawClientDrawClientDrawClient
MFC
탭지원 MDI 툴바 상태바MFC
탭지원 MDI 툴바 상태바탭지원 MDI, 툴바 , 상태바탭지원 MDI, 툴바 , 상태바
MFC
리본바MFC
리본바리본바리본바
MFC
리본바MFC
리본바리본바리본바
CMFCRibbonApplicationButtonCMFCRibbonQuickAccessToolBarCMFCRibb C tCMFCRibbonApplicationButtonCMFCRibbonQuickAccessToolBarCMFCRibbonCategory
CMFCRibb BCMFCRibb P lCMFCRibb B ttCMFCRibb C l B ttCMFCRibbonBarCMFCRibbonPanelCMFCRibbonButtonCMFCRibbonColorButton
MFC
도킹판(Docking Panes)MFC
도킹판(Docking Panes)도킹판(Docking Panes)도킹판(Docking Panes)
MFC
VisualManagerMFC
VisualManagerVisualManagerVisualManager응용프로그램을 화려하게 구성UI 구성 코드를 한곳에 집중.
toolbars, buttons, menus, ribbons, docking panes, 기타…
실행 중에 다른 스킨으로 변경Office XPNative Windows XP/Windows VistaOffice 2003Visual Studio 2005Visual Studio 2005Office 2007 (색상 스키마)
MFC
VisualManagerMFC
VisualManagerVisualManagerVisualManager
MFC 새로운기능MFC 새로운기능
릴리즈릴리즈릴리릴리
정식버전2008년 3월 예정
RC버전버전2007년 12월 릴리즈웹사이트를 통해 다운로드 가능
추가 탑재예정MFC updatepTR1
다음버전다음버전
VC++ 10
다음버전다음버전
네비티브 코드 기반 개발자를 위한 강력한 기능Office & Windows UI 구현 메이져 역할구현 메이져 역할예) Office 14 & Windows 7
Windows 새로운 기능에 변화새 운 기능에 변화예) Search & Organize
Restart ManagerPower Management
네이티브와 관리형 코드간의 융합에 포커스
결론결론
빌드환경 개선
결론결론
Vista 기반 지원 강화MFC 기능 지원 강화기능 지원 강화네이티브 개발에 대한 지원 지속VC++ 2008을 통해 새로운 기술 및 가능성 제시VC++ 2008을 통해 새로운 기술 및 가능성 제시
VC++ 2008 지속성장
관련자료관련자료관련자관련자
VS 2008 Professional Trial Editionhttp://www.microsoft.com/downloads/details.aspx?FamilyID=83c3a1ec-ed72-4a79-8961-25635db0192b&DisplayLang=en
VC++ BlogVC++ Bloghttp://blogs.msdn.com/vcblog/
VC++ Libraries forumsVC++ Libraries forumshttp://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=8&SiteID=1
Channel9 VC++ videoshttp://channel9.msdn.com/tags/C++p // / g /
BCGSofthttp://www.bcgsoft.com/p g
VC++ 팀블로그관련내용VC++ 팀블로그관련내용팀블 관련내용팀블 관련내용
http://blogs.msdn.com/vcblogMarshaling Library in OrcasVisual Studio Express OrcaspResource Editor Updates for OrcasVisual C++ Orcas Feature Specifications onlineVisual C++ Orcas Feature Specifications onlineCustom WizardsMFC Updates for Vista Common ControlsMFC Updates for Vista Common ControlsMulti-processor builds in OrcasManaged Incremental BuildAn Update to STL/CLR is Complete!
최근의 Channel 9 영상들최근의 영상들
http://channel9.msdn.com/tags/C++Steve Teixeira and Bill Dunlap: Visual C++ Today and TomorrowNikola Dudar: STLCLR - STL Development in the Managed WorldMarina Polishchuk: VC++ QA - The best job in the bizSarita Bafna: VC++ "Orcas" - Marshaling Library andSarita Bafna: VC Orcas Marshaling Library and MFC support for Common ControlsAle Contenti: VC++ Safe Libraries and MoreAle Contenti: VC++ Safe Libraries and MoreGordon Hogenson: Documenting Development TechnologiesTechnologies