Visual C++ 2008新特性

来源:互联网 发布:最短路径算法的应用 编辑:程序博客网 时间:2024/04/29 02:59
Visual C++ 2008新特性
2007年11月,微软发布了Visual Studio 2008 RTM版,在发布之前,既没有在网站首页醒目位置打上相关标识,也没有在现实生活中进行相关宣传,仅在下载中心给出其90天试用版的下载链接,显得十分低调,有关的宣传活动,恐怕要等到2008年2月份发布Windows Server 2008时一同进行吧。此次Visual Studio 2008为英文版,想用简体中文版的朋友可能也要等到明年2月份才有机会一睹庐山真面目了。那么,这次发布的Visual C++ 2008与以往有什么不同吗,会不会像Visual C++ 2005一样让全世界的C++爱好者兴奋不已呢,下面一一道来。

Visual C++集成开发环境的变化

1、在ATL、MFC及Win32应用程序中创建的对话框现在已符合Windows Vista样式标准了。使用Visual C++ 2008创建的新工程中所有对话框现在都会符合Vista窗口样式,但如果编译一个早期Visual C++版本创建的工程,对话框仍会保持原有的窗口样式。

2、在ATL工程向导中,可选择为所有用户注册组件。从Visual Studio 2008开始,由ATL工程向导创建的COM组件与类型库,如未选择为所有用户注册,默认将注册在HKEY_CURRENT_USER中。

3、注册表写入能被重定向。随着Vista而来的安全性要求,如果程序想写入到注册表的某特定区域,需要以权限提升模式运行,那总不可能总是以提升模式运行Visual Studio吧,所以,对注册表HKEY_CLASSES_ROOT区域的写入将自动重定向到HKEY_CURRENT_USER,而不需要进行任何编程。

4、类设计器现在可提供对本机C++代码的有限支持。在Visual Studio的早期版本中,类设计器仅能用于Visual C#和Visual Basic,现在,C++程序员也能使用类设计器了,但只限于只读模式。

Visual C++库的变化

1、STL/CLR库。编写托管代码的程序员是不是又该高兴了,现在Visual C++已包含了STL/CLR库(即之前的STL.NET,STL.NET为当时把STL移植到 .NET平台的项目代号)。STL/CLR库是对标准模板库(STL)的封装,其是标准C++库的一个子集,STL/CLR结合了C++模板与 .NET的泛型概念,允许C++程序员在STL容器与算法中使用 .NET类型。现在,STL中的容器类(container)、迭代子(iterator)、算法等等,还不是照样信手拈来。

2、MFC库。新的MFC9提供了支持Windows Vista的通用控件,新增了超过150个方法用于支持Vista的新特性及改进现有MFC类的功能,如新的CNetAddressCtrl类可用于输入及验证IPv4及IPv6地址或DNS名、新的CPagerCtrl类可简化选项卡控件的使用、新的CSplitButton类可简化SplitButton控件的使用。

另外,不得不提的是,微软计划在2008年年中的某个时间,发布对MFC库的一个重大更新,可使程序员构造具有超现代用户界面的程序,如类似Office 2007 Ribbon、Office样式菜单、Visual Studio样式的停靠工具栏、MDI程序中的多选项卡文档,此次更新的组件在Windows 2000以上的操作系统均可运行,如下图所示。

 

2、链接器的变化

用户账户控制现在已嵌入在可执行文件的清单文件中。这个功能默认是打开的,如图所示。

 

链接器现在可使用/DYNAMICBASE选项以打开Windows Vista上的地址空间随机排列(Address Space Layout Randomization)功能。这个选项修改了可执行文件头,以表明程序在加载时,是否可以随机重新定位基址。
当然在链接选项中,也少不了数据执行保护(DEP),见下图。

 

Visual C++ 2008的发布,无疑把C++这种开发语言又推到了一个新的高度,从底层系统驱动开发到高层 .NET编程,都不在话下,而且在功能性、安全性、易用性上有了显著的进步,将来,随着C++0x标准的临近及ISO 2003标准C++库的普及,Visual C++必定又有一片新的天地,作为程序员的你,还等什么呢。

原创粉丝点击