VS2008을 이용한 C++코드의 견고한 업그레이드

Similar documents
Windows Embedded Compact 2013 [그림 1]은 Windows CE 로 알려진 Microsoft의 Windows Embedded Compact OS의 history를 보여주고 있다. [표 1] 은 각 Windows CE 버전들의 주요 특징들을 담고

PCServerMgmt7

서현수

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

Microsoft PowerPoint - chap01-C언어개요.pptx

AVG PC TuneUp User Manual

Dialog Box 실행파일을 Web에 포함시키는 방법

APOGEE Insight_KR_Base_3P11

ODS-FM1

AGENDA 모바일 산업의 환경변화 모바일 클라우드 서비스의 등장 모바일 클라우드 서비스 융합사례

KDTÁ¾ÇÕ-2-07/03

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

05Àå

Microsoft PowerPoint - Windows CE Programming_2008 [호환 모드]

비디오 / 그래픽 아답터 네트워크 만약에 ArcGolbe를 사용하는 경우, 추가적인 디스크 공간 필요. ArcGlobe는 캐시파일을 생성하여 사용 24 비트 그래픽 가속기 Oepn GL 2.0 이상을 지원하는 비디오카드 최소 64 MB 이고 256 MB 이상을 메모리

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

삼성955_965_09

Eclipse 와 Firefox 를이용한 Javascript 개발 발표자 : 문경대 11 년 10 월 26 일수요일

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

Microsoft PowerPoint - AME_InstallRoutine_ver8.ppt

DE1-SoC Board

KDTÁ¾ÇÕ-1-07/03

( )부록

Backup Exec

chapter4

ESET Endpoint Security

Microsoft Word - 임베디드월드_WindowsEmbeddedCompact7_rev

<4D F736F F D2033BFF920BECBBEE0BFF9B0A3BAB8B0EDBCAD2E646F6378>

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

Orcad Capture 9.x

vm-웨어-앞부속

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

DR-M140 사용 설명서

슬라이드 1

Microsoft PowerPoint - CoolMessenger_제안서_라이트_200508

초보자를 위한 C++

초보자를 위한 ADO 21일 완성

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

untitled

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Interstage5 SOAP서비스 설정 가이드

이 드리는 혜택 완벽 을 위한 발환경 : Team Foundation Server 200 & CAL 제공 최저의 비용으로 구현을 위해 Visual Studio Team Foundation Server 200 서버 라이센스와 CAL이 에 포함되어 있습니다 을 모든 팀원이

슬라이드 1

untitled

untitled

McAfee Security Virtual Appliance 5.6 설치 안내서

Intro to Servlet, EJB, JSP, WS

목차 006/ 008/ 009/ 011/ 012/ 013/ 014/ Part 1_ 컴퓨터가 제대로 작동하지 않을 때 문제00_ 윈도우7 복구(초기화) 방법 안내 문제01_ 컴퓨터의 전원 버튼을 눌러도 아무 반응이 없어요. 문제02_ 전원을 누르면 팬(쿨러)이 돌아가는

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

슬라이드 1

++11월 소비자리포트-수정

슬라이드 1

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

10X56_NWG_KOR.indd

PowerPoint 프레젠테이션

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

<%DOC NAME%> User Manual

P2WW HNZ0

!K_InDesginCS_NFH

HTML5* Web Development to the next level HTML5 ~= HTML + CSS + JS API

Voice Portal using Oracle 9i AS Wireless

PowerPoint Presentation

Special Theme _ 모바일웹과 스마트폰 본 고에서는 모바일웹에서의 단말 API인 W3C DAP (Device API and Policy) 의 표준 개발 현황에 대해서 살펴보고 관 련하여 개발 중인 사례를 통하여 이해를 돕고자 한다. 2. 웹 애플리케이션과 네이

슬라이드 1

윈도우시스템프로그래밍

Install stm32cubemx and st-link utility

초보자를 위한 ASP.NET 2.0


Remote UI Guide

Domino Designer Portal Development tools Rational Application Developer WebSphere Portlet Factory Workplace Designer Workplace Forms Designer

Assign an IP Address and Access the Video Stream - Installation Guide

윈도우시스템프로그래밍

Citrix Workload Balancing 2.1 설치 가이드

vm-웨어-01장

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Spotlight on Oracle V10.x 트라이얼프로그램설치가이드 DELL SOFTWARE KOREA

Analyst Briefing

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Open Cloud Engine Open Source Big Data Platform Flamingo Project Open Cloud Engine Flamingo Project Leader 김병곤

ESET NOD32 Antivirus

SchoolNet튜토리얼.PDF


Windows Live Hotmail Custom Domains Korea

Portal_9iAS.ppt [읽기 전용]

untitled

No Slide Title

<%DOC NAME%> User Manual

슬라이드 1

김기남_ATDC2016_160620_[키노트].key

슬라이드 1

초보자를 위한 C# 21일 완성

초보자를 위한 ASP.NET 21일 완성

THE TITLE

Microsoft PowerPoint - 권장 사양

Microsoft PowerPoint - Install Guide[ ].ppt [호환 모드]

Microsoft PowerPoint - VC Update 블로그용

solution map_....

공지사항

Transcription:

Visual Studio2008 을이용한 C++ 코드의견고한업그레이드 김용현 www.yhkim.com Microsoft MVP Chief Programmer, ESTsoft

유츠프라카치아 3/12/2008 2

Windows with Native VS.NET.NET Framework 성공, 그러나 Native C++ 이합리적인경우가많음 C++ 은 Windows SDK를이용해 Windows의모든부분을자유롭게엑세스할수있는유일한언어 VC++ 2008의업데이트쯤에서대대적인업그레이드가이루어짐 3/12/2008 3

Agenda Overview on new VC++ 편리한사용성지원 추가된컨트롤지원 MFCNext 표준라이브러리확장 3/12/2008 4

Overview Visual C++ 2008 컴파일러는 OOO 를지원 CLR(Common Language Runtime) x86, x64, Itanium 최적화지원 Visual C++ 2008 라이브러리는 OOO 를지원 ATL, MFC, Standard C++ Library, STL, C Runtime Library, STL/CLR http://msdn2.microsoft.com/en us/library/60k1461a.aspx 3/12/2008 5

Vista Style Guidelines ATL, MFC, Win32 에서생성되는다이얼로그는 Vista style 가이드라인이반영이됨 3/12/2008 6

Vista Style Guidelines Aero 테마, 공용컨트롤, 공용다이얼로그, 작업관리자, Glass 효과, Aero Wizard, 시스템폰트, 검색상자, 에러메시지다이얼로그, 비스타지원 새로운컨트롤, 이벤트, Notification, 스타일에대한 MFC 지원 3/12/2008 7

Class Designer 2005 에서.NET 지원언어들에게지원되어졌음 Office등과쉽게연동되며클래스 drag-drop 등으로쉽게사용 아쉽게, Read Only 3/12/2008 8

Class Designer class A { }; class CCustomClass: public A { public: int a; int b; private: int c; int d;}; 3/12/2008 9

IDE Upgrade 3/12/2008 10

IDE Upgrade 3/12/2008 11

IDE Upgrade 3/12/2008 12

IDE Upgrade 3/12/2008 13

IDE 의향상 Solution Load Performance 향상 Editor Responsiveness 향상 IntelliSense Responsiveness 향상 NCB파일의동기화부분수정 더이상코딩을멈추는방해를하지않음 최악의상황에서도 CPU사용률이 90% 미만 프로젝트사이즈가 XXL 라도유연하게동작 3/12/2008 14

IDE 의향상 3/12/2008 15

병렬 Unit 컴파일옵션 {/MP(n)} CPU 가병렬적으로프로젝트컴파일 Tools > Options > Project and Solutions > Build and Run > parallel project builds 에서병렬적빌드프로젝트의개수선택가능 Dependency가있는프로젝트는적용이안됨 실제프로젝트운용상유명무실, 복배지모! /MP(n) switch 빌드의프로세스의개수를 Hard Coding할수있음 Cpp등의유닛단위로적용 셋팅에따라 30% 상하이상콤비네이션효과 3/12/2008 16

보안을위한컴파일러옵션 ASLR(Address Space Layout Randomization) 라이브러리적재위치, 스택, 힙의시작위치를랜덤화 /DYNAMICBASE DEP(Data Execution Prevention) Execute Disable, Enhanced Virus Protection 폰노이만구조의한계 /NXCOMPACT 3/12/2008 17

IDE 의비스타지원 비스타에서 VS2005 개발환경을꾸미면번거로운과정이들어감 Hotfix for VS2005 ENU(KB929470) 제거 VS2005 ServicePack1 with Vista 설치 Run as Administrator 로수행을권장 간단한테스트애플리케이션을작성할때도뜨는 UAC가상당히신경쓰임 VS2005 자체가 Vista 애플리케이션개발가이드라인에맞지않는애플리케이션이되어버림 3/12/2008 18

IDE 의비스타지원 처음부터 Run as Administrator 불필요 User 권한에서도개발가능 Administrator 권한이필요할때만 UAC 를통해권한획득 3/12/2008 19

UAC 지원하기 OLD WAY #define MANIFEST_RESOURCE_ID 1 MANIFEST_RESOURCE_ID RT_MANIFEST AdminApp.exe.manifest mt.exe -manifest 1.manifest 2.manifest -outputresource:myapp.exe <?xml version='1.0' encoding='utf-8' standalone='yes'?> <assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestversion='1.0'> <trustinfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedprivileges> <requestedexecutionlevel level="asinvoker" uiaccess="false" /> </requestedprivileges> </security> </trustinfo> </assembly> 3/12/2008 20

UAC 지원하기 NEW WAY Project > Properties > Linker > Manifest File 관련 UI 제공 /MANIFESTUAC /MANIFESTUAC /MANIFESTUAC:NO /MANIFESTUAC:level={asInvoker highestavailable requireadministrator} /MANIFESTUAC:uiAccess={true false} 3/12/2008 21

추가지원되는컨트롤기능 커맨드링크컨트롤 스플릿버튼 BS_SPLITBUTTON 설정 Network Address IPv4, IPv6, DNS etc.. 시스템링크 콤보박스컨트롤 트리뷰 다중선택, 더블버퍼링 3/12/2008 22

그밖의변경사항 ATL Server 가 CodePlex 로릴리즈됨 Atlenc, atlutil.h, atlpath.h 지원안함 Intel Core Architecture 지원 cpuid 함수업그레이드 최신버전의 AMD 및 Intel 프로세서의향상된기능지원 /Wp64, w64 무효화 3/12/2008 23

CRT,STL 의변경사항 Windows2000 아래의운영체제지원중단 Windows 95/98/ME, Windows NT4.0 CRT 의일부함수삭제 _osplatform, _osver, _winmajor, _winminor, _winver _get_osplatform, _get_osver, _get_winmajor, _get_winminor, _get_winver SAL의문법변경 3/12/2008 24

AfxBeginMFCIsBack() 새로추가된새로운 Native API 활용 깔끔한사용자인터페이스 새로운 Native API 의래핑을지원하는것과동시에새로운컨트롤및공용대화상자등의추가제공 150개가넘는 Method와 18개의새로운클래스가 Vista를 feature지원을위해더해짐 기존코드보다성능향상 3/12/2008 25

MFCNext MFC 의향상된기능은대부분 UI 에집중 MFC 프로젝트를 VC9에서다시컴파일하면 Windows Vista에맞게모양자동최적화 EX) bvistastyle 추가파라미터전달 CFileDialog dlgfile(true); dlgfile.domodal(); 3/12/2008 26

Support Office&VS&IE style 3/12/2008 27

MFC 9.0 에서새로운것들 Visual style Application UI 빌드가가능 Microsoft Office Visual Studio Internet Explorer 다양한 UI 구성요소들지원 Toolbar 커스터마이징 메뉴, 키, 메뉴바, Docking Panes 다양한스킨지원 XP, Vista, Office2003, Office2007 (blue, black, aqua ) 3/12/2008 28

Office Interface 3/12/2008 29

IE Interface 3/12/2008 30

Visual Studio Interface 3/12/2008 31

새로운형태컨트롤지원 막상구현하려면막막한여러컨트롤지원 3/12/2008 32

MFC9.0 모습및변화 3/12/2008 33

MFC 9.0 에서변화된것들 CTime 클래스의처리날짜확장변경 ActiveX 컨트롤을삽입후탭오더변경버그수정 CFileDialog 의컨트롤 ID 가변경 CWnd::GetMenuBarInfo 메소드삭제 CFrameWnd::GetMenuBarInfo 의 Virtual 속성없어짐 CHttpServer 가없어짐 ISAPI(Internet Server Application Programming Interface) 를지원하지않음 ANSI MFC 메소드를 Unicode 로변경권장 Visual Manager 는 MBCS 과 Unicode 를모두지원하지만 Windows Control 를래핑하면서 Unicode 만지원하게됨 3/12/2008 34

Known Uses 3/12/2008 35

StandardCppLibraryIsExtended() VS2008 에포함된 TR1 항목들 shared_ptr, weak_ptr mem_fn(), bind(),, and function 정규표현식 regex <random> Containers (tuple( tuple, array, unordered_set, etc.) <type_traits> reference_wrapper 포함되지않은항목들 C99 Compatibility (<cstdint>( <cstdint>,, etc.) Special Math Functions (riemann_zeta()( riemann_zeta(),, etc.) 3/12/2008 36

Visual Studio 에서 TR1 에대한정책 Visual C++ 2005 (VC8) 에는포함시키지않을것임 VC9 Express 버전에는포함안됨 Visual C++ 2008 (VC9) RTM 별도의 patch 를설치하면 VC9 RTM 에포함됨 VC9 SP1 과이후버전에는포함됨 (VC10, ) 3/12/2008 37

TR1 구성요소 TR1 의구성요소 <regex> 와같은새로운헤더파일셋 <memory> 와같은기존헤더의수정파일셋 msvcp90[d].dll 의수정파일셋 기존콤포넌트들과분리되어있는요소 헤더파일만추가한다고 TR1 을사용할수없음 msvcp90[d].dll 와같은파일과쌍으로움직여야함 MFC Update 와 TR1 Update 는별개임 3/12/2008 38

TR1 differ from Boost 라이선스정책 Boost 는오픈소스, TR1 은 DLL Library 정책에따름 Boost 의모든요소가 TR1 에포함된것은아님 일부 regex 문법, shared_array 최적화 (e.g. vector<shared_tr<t> >) 기존 STL과같이사용할수있도록리포지셔닝 /clr, /clr:pure, /W4, /Za, /Gz, /anlayze STL에서처럼 IDE Debugger Visualizer에서 TR1 type은강하게연동됨 3/12/2008 39

<array> <functional> <memory> <regex> <tuple> <type_traits> <unordered_map> <unordered_set> <utility> 추가된헤더파일 3/12/2008 40

Reference VC++2008 Feature Pack Beta Documentation C++ 표준라이브러리확장튜토리얼및레퍼런스 - Pete Becker, 지 & 선 http://openstd.org/jtc1/sc22/wg21/docs/papers/2005/n1836.pdf http://blogs.msdn.com/vcblog http://channel9.msdn.com/tags/c++ http://blogs.msdn.com/somasegar 3/12/2008 41

Thank you 이후피드백 http://www.devpia.com/maeul/contents/list.aspx?boardid=4246&mae ULNo=4 Software Architecture 와 Pattern 관련 Study 및 Online 토론 Software Architecture 와 Design Pattern 관련 Q&A 3/12/2008 42