Visual C__ 2008

Embed Size (px)

Citation preview

  • 8/4/2019 Visual C__ 2008

    1/21

    VISUAL C++ 2008VC++ 9.0

    Fabio GaluppoSoftware Engineer (Im a programmer!)

    Visual C++ MVPC/C++ Brasil Community Member

  • 8/4/2019 Visual C__ 2008

    2/21

    Whats new in Visual C++ 2008

    IDE & Controls Dialog boxes that are created in ATL, MFC, and Win32

    applications now comply with the Windows Vista styleguidelines

    The ATL Project wizard now has an option to registercomponents for all users

    Writing to the registry can be redirected

    The Class Designer now has limited support for nativeC++ code

    http://msdn2.microsoft.com/en-us/library/bb384632.aspx

    http://msdn2.microsoft.com/en-us/library/bb384632.aspxhttp://msdn2.microsoft.com/en-us/library/bb384632.aspxhttp://msdn2.microsoft.com/en-us/library/bb384632.aspxhttp://msdn2.microsoft.com/en-us/library/bb384632.aspx
  • 8/4/2019 Visual C__ 2008

    3/21

    Whats new in Visual C++ 2008

    IDE & Controls

    http://msdn2.microsoft.com/en-us/magazine/cc163402.aspx

    http://msdn2.microsoft.com/en-us/magazine/cc163402.aspxhttp://msdn2.microsoft.com/en-us/magazine/cc163402.aspxhttp://msdn2.microsoft.com/en-us/magazine/cc163402.aspxhttp://msdn2.microsoft.com/en-us/magazine/cc163402.aspx
  • 8/4/2019 Visual C__ 2008

    4/21

    Whats new in Visual C++ 2008

    Libraries STL/CLR Library

    Visual C++ now includes the STL/CLR Library.

    MFC Library

    Windows Vista supports Common Controls. Over 150 methodsin 18 new or existing classes have been added to supportfeatures in Windows Vista, or to improve functionality incurrent MFC classes.

    C++ Support Library

    C++ introduces the marshaling library.

    ATL Server

    ATL Server is released as a shared source project.

    http://msdn2.microsoft.com/en-us/library/bb384632.aspx

    http://msdn2.microsoft.com/en-us/library/bb384632.aspxhttp://msdn2.microsoft.com/en-us/library/bb384632.aspxhttp://msdn2.microsoft.com/en-us/library/bb384632.aspxhttp://msdn2.microsoft.com/en-us/library/bb384632.aspx
  • 8/4/2019 Visual C__ 2008

    5/21

    Whats new in Visual C++ 2008

    Compiler The compiler supports managed incremental builds. The compiler supports Intel Core 2 microarchitecture Intrinsics support newer AMD and Intel chipsets. The __cpuid function is updated. The /MP compiler option reduces total build time.

    The /Wp64 compiler option and __w64 keyword are deprecated. /Qfast_transcendentals /Qimprecise_fwaits

    Linker User Account Control information is now embedded into manifest files for

    executables by the Visual C++ linkerMFC Library The linker now has the /DYNAMICBASE option to enable the Address Space

    Layout Randomization feature of Windows Vista

    http://msdn2.microsoft.com/en-us/library/bb384632.aspx

    http://msdn2.microsoft.com/en-us/library/bb384632.aspxhttp://msdn2.microsoft.com/en-us/library/bb384632.aspxhttp://msdn2.microsoft.com/en-us/library/bb384632.aspxhttp://msdn2.microsoft.com/en-us/library/bb384632.aspx
  • 8/4/2019 Visual C__ 2008

    6/21

    Whats new in Visual C++ 2008 SP 1

    MFC An expanded MFC library to support modern user interface

    (UI) elements such as the Office Fluent UI, docking windowsand MDI tabbed windows similar to those used in some

    releases of Visual Studio, enhanced toolbars, a rich new setof controls, support for controlling the overall visual style,support for desktop alerts, and much more.

    Enables you to build MFC applications that have the visual

    style of a Microsoft Office, Visual Studio, or InternetExplorer application. The MFC Feature Pack library providescustomizable toolbars, menus, keyboards, menu bars, anddocking panes.

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx
  • 8/4/2019 Visual C__ 2008

    7/21

    Whats new in Visual C++ 2008 SP 1

    MFC

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx
  • 8/4/2019 Visual C__ 2008

    8/21

    Whats new in Visual C++ 2008 SP 1

    MFC

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx
  • 8/4/2019 Visual C__ 2008

    9/21

    Whats new in Visual C++ 2008 SP 1

    MFC

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx
  • 8/4/2019 Visual C__ 2008

    10/21

    Whats new in Visual C++ 2008 SP 1

    MFC

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx
  • 8/4/2019 Visual C__ 2008

    11/21

    Whats new in Visual C++ 2008 SP 1

    MFC

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx

    http://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspxhttp://blogs.msdn.com/vcblog/archive/2007/11/09/quick-tour-of-new-mfc-functionality.aspx
  • 8/4/2019 Visual C__ 2008

    12/21

    Whats new in Visual C++ 2008 SP 1

    Standard C++ Library TR1 Extensions Implementation of the proposed extensions to the C++

    ISO standard included in the draft document TechnicalReport 1. Microsoft's implementation includes supportfor fixed size arrays, function objects, hash tables,regular expressions, template metaprogramming,template types for aggregating related objects, andrandom number generation.

    Portions of TR1 are scheduled for adoption in the

    upcoming C++0x standard as the first majoraddition to the ISO 2003 standard C++ library.

    http://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspx

    http://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/22/tr1-slide-decks.aspx
  • 8/4/2019 Visual C__ 2008

    13/21

    Whats new in Visual C++ 2008 SP 1

    Standard C++ Library TR1 Extensions Headers

    http://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspx

    http://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspxhttp://blogs.msdn.com/vcblog/archive/2008/02/25/channel-9-stephan-t-lavavej-digging-into-c-technical-report-1-tr1.aspx
  • 8/4/2019 Visual C__ 2008

    14/21

    STL/CLR

    Bring STL idioms to CLR types Same containers

    Same complexity

    Same iterators

    And

    Containers expose .NET collection interfaces

    IEnumerable, ICollection, IList, IDictionary

    Usable outside a single assembly

  • 8/4/2019 Visual C__ 2008

    15/21

    Marshaling

    New library to simplify passing data betweennative and managed code

    Template-based pattern that applies to any kind

    of data Support lots of types out-of-the-box

    System::String^

    const char *System::String^

    const wchar_t *System::String^

    char *

    System::String^wchar_t *

    System::IntPtrHANDLE

    System::String^

    BSTR

    System::String^bstr_tSystem::String^

    std::string

    System::String^std::wstring

    System::String^ATL::CStringT

    System::String^ATL::CStringT

    System::String^ CComBSTR

  • 8/4/2019 Visual C__ 2008

    16/21

    Stateless Transition

    I want to marshal between managed and nativedata types for conversions that do not require anylifetime management or complex resourceallocation

    #include

    using namespace msclr::interop;

    const char* sourcestring1 = teststring

    System::String^ deststring1;// Convert const char* to System::String^ using

    // TO to = marshal_as (from)

    deststring1 = marshal_as(sourcestring1);

  • 8/4/2019 Visual C__ 2008

    17/21

    Stateful Transition

    I want to marshal between managed and nativedata types for conversions that require some kindof lifetime (memory, resource, etc)

    #include

    using namespace msclr::interop;

    System::String^ sourcestring1 = teststring

    const char* deststring1;

    // Convert System::String^ to const char*

    marshal_context ctx;

    deststring1 = ctx.marshal_as(sourcestring1);

  • 8/4/2019 Visual C__ 2008

    18/21

    Elegant Interop

    STL/CLR + Marshaling = Better Interop

    #include

    #include

    // Take generic collection and transform into container. No copying

    void MyFunction(Generic::IList^ list )

    {

    cliext::collection_adapter cont( list );

    cliext::list myList( cont.size() );

    cliext::transform(cont.begin(), cont.end(),myList.begin(),

    cliext::bind2nd(cliext::plus(),2));

    }

  • 8/4/2019 Visual C__ 2008

    19/21

    Security

    Lets review /GS

    /SafeSEH

    DEP Compatibility (/NXCompat) Data Execution Prevention

    New in Vista and Server 2008: ASLR

    Linker switch (/DYNAMICBASE) to opt in to supportASLR

    http://msdn2.microsoft.com/en-us/library/bb430720.aspx

    http://msdn2.microsoft.com/en-us/library/bb430720.aspxhttp://msdn2.microsoft.com/en-us/library/bb430720.aspxhttp://msdn2.microsoft.com/en-us/library/bb430720.aspxhttp://msdn2.microsoft.com/en-us/library/bb430720.aspx
  • 8/4/2019 Visual C__ 2008

    20/21

    Build in Parallel

    In 2005 Build Multiple Project in Parallel

    Tools > Options > Project and Solutions > Build andRun > Parallel Project Builds

    In 2008 Build Multiple Translation Units in Parallel

    /MP or /MPn (where n is no. of CPUs) Project Properties > C/C++ > Command Line >

    Additional Options

  • 8/4/2019 Visual C__ 2008

    21/21

    Resources

    Fabio Galuppo Blog http://fabiogaluppo.spaces.live.com/

    VC++ Blog -

    http://blogs.msdn.com/vcblog Visual C++ Developer Center

    http://msdn2.microsoft.com/en-us/visualc/default.aspx

    Comunidade C/C++ Brasil (Participe)

    http://www.cbrasil.org/

    http://fabiogaluppo.spaces.live.com/http://blogs.msdn.com/vcbloghttp://msdn2.microsoft.com/en-us/visualc/default.aspxhttp://www.cbrasil.org/http://www.cbrasil.org/http://msdn2.microsoft.com/en-us/visualc/default.aspxhttp://msdn2.microsoft.com/en-us/visualc/default.aspxhttp://msdn2.microsoft.com/en-us/visualc/default.aspxhttp://msdn2.microsoft.com/en-us/visualc/default.aspxhttp://blogs.msdn.com/vcbloghttp://fabiogaluppo.spaces.live.com/