当年Visual Studio.NET 2003 C++编译器的面世,令无数C++语言爱好者都对此垂涎不已;它与ISO C++标准保持98%的一致——这比以前任何一个版本都更加接近,和一体化的语言支持特性,如局部模板特定化;同时也包括了增强的缓冲区安全检查和改进的编译器诊断功能。以往使用C#和Visual Basic.NET的
开发者,通过简单的拖放操作,就能生成稳健的Windows窗体应用程序,如今,C++的开发者也加入了进来,而且,这个编译器还对Intel Pentium 4和AMD Athlon处理器作了优化处理。
如果Visual C++ .NET 2003都令你兴奋不已,那么它的最新版本Visual C++ 2005,足够令你高兴得发狂了。对于 .NET开发,Visual C++ 2005如今有了一套新的语法,不但显得更“优雅”,而且更强大;它拥有新的优化技术,可使
程序的速度最高提高30%;同时新的编译模式,可保证在Microsoft .NET Framework之上生成完全遵从CLI(Common Language Infrastructure)的可验证代码;新的interop模式,可提供本地与托管代码的无缝融合。相对于前两个版本,新编译器还包括了一个增强版本的缓冲区安全检查选项,而且对C++程序普遍使用的库,也有新的注重安全的版本。Visual C++ 2005对基于Intel Itanium和AMD64的64位平台,提供了对OpenMP标准的支持,并且修正了一些混合DLL加载的问题,对Double P/Invoke的性能问题,提供了自动运行时消除。关于类似的增强和改进还有很多很多,正如一个C++架构师说的那样,“C++终于站在了它应该站的位置上”。
阅读导航 C++/CLI 新的语法 在语言设计上,微软Visual C++开发小组制定了一些主要的目标。首先(对那些认为编程是
艺术的人来说,也许是最重要的),他们要保证在开发者在编写C++代码时感觉自然,为达到这个目的,他们对ISO C++标准作了一个在语法上优雅的纯粹扩展,目的是为了在像单击部署、窗体设计支持和SQL Server 2005的托管代码支持这些地方,可更简单地用C++编写可验证的代码。他们想要设计出一个超过C++的语言,要带给C++全部的 .NET能力,同时也要带给 .NET全部的C++能力。现在看来,他们非常的成功。
>>>详细内容 新的Interop功能
在Visual Studio .NET 2003的所有基于 .NET Framework的语言当中,Visual C++ 2005提供了最好的interop功能。它可不像是纸上谈兵,如今具有了足够的能力来实现真实世界中的场景,一个最好的例子就是把Quake II移植到 .NET Framework平台上,而Visual C++ 2005则更加扩展了这项功能。
>>>详细内容
更好的代码优化
一个好的
软件开发者总会想方设法提高软件的执行效率,编译器的编写者是一种特殊类型的开发者,不仅代码要执行效率高,而且由它们生成的代码也必须极有效率。因此,任何一个成功的编译器产品,优秀的后台优化是必不可少的。而在这方面,Visual C++ 2005脱颖而出。
>>>详细内容 可靠的安全 在2002年,Bill Gates宣布的可信赖计算,对微软公司开发的所有产品带来了深刻的影响。Windows
操作系统的开发者花了数月的时间来进行安全方面的训练及代码重审,带来的结果就是,Windows Server 2003成了该公司有史以来发布的最安全的操作系统。Office 2003也包含了许多的安全功能,像IRM(Information Rights Management)、加强的宏安全、Outlook中阻止下载HTML等等。而Visual C++ 2005编译器的开发者,在此方面也取得了长足的进步,使编译器及它们生成的代码都更加安全。
>>>详细内容 结论 Visual C++ 2005带来了许多激动人心的功能,如:对混合映像的CLR延迟加载、本地AppDomain API、新的declspecs对AppDomains和进程的全局变量可提供更好的支持、模块构造函数、对obj文件和 .NET模块的链接器支持、隐式装箱(boxing)、(C#的开发者可能会喜欢的相同的)XML注释语法、针对 .NET Framework的STL的新版本、param数组、别名提示、新的浮点模式、操作符重载等等;在此难以一一叙述,但相信每一种新的功能,都会给大家带来不同的编程体验。
任何基于 .NET Framework的语言新版本经常会引起这样的疑问:“如果编写 .NET平台程序,那我的开发小组该用哪种语言?”今天,如果你经常有一些本地interop操作,答案就简单了,C++是可用作本地interop操作最容易的语言,而且还最有效率。另外,如果你想移植一个现有的C++程序到 .NET平台,实际上,除了Visual C++,没有更好的路可选,同时,在把现有应用程序移植到 .NET平台上时,这也是微软最推荐的方法。
对开发新的应用程序来说,你可能会问,在选择基于 .NET的语言时,为什么开发者会显得茫然和不知所措,对此,没有一个直截了当的答案,因为每种语言都有它的长处,但对纯 .NET程序来说,C#、Visual Basic、C++的体验是相同的。作为一个开发者,如果你已经习惯了一种特定的语言,没有必要换到另一种去。
也许你会选择C++,不管怎样,在进行任何interop操作时,因为直接内置了对interop的大量支持,所以C++的体验比其他任何一种语言都要好。另外,除了避免资源泄漏和保证程序的正确性,析构函数提供的确定性清理没有任何价值。同时,C++也有一些强大的功能,可与上述CLR提供的功能组合使用,例如,C++不只是支持模板和泛型,而且支持两者结合起来使用,这样,可比单独使用其中一者的功能更强大,也更具表现力;特别地,一个实用的编写库文件的技巧是,编写一个模板,并实现一个泛型接口,这样得到的模板不但功能强大,而且具有
高度可伸缩性,如模板特定化,这样其他语言也可直接使用通过模板泛型接口实例化的对象。总而言之,C++绝非浪得虚名,终于站在了它应该站的位置上。