当前位置:主页   - 电脑 - 程序设计 - C/C++
C++的管理扩展
来源:网络   作者:   更新时间:2012-02-13
收藏此页】    【字号    】    【打印】    【关闭

  简介

  C++管理扩展是一组语言扩展,它帮助Microsoft Visual C++开发人员为微软.NET编写应用程序。

  管理扩展是有用的,如果你:

  希望提高开发人员使用C++编写.NET应用程序的生产率

  要分阶段地将一大段代码从非管理C++中移植到.NET平台上

  想从.NET Framework应用程序中使用已有的非管理C++组件。

  想从非管理C++中使用.NET Framework组件

  在同一应用程序中混合非管理C++代码和.NET代码

  C++管理扩展为开发人员定位.NET Framework提供了无比的灵活性。传统的非管理C++和管理C++代码可以自由地混合在一个应用程序中。用管理扩展编写的应用程序可以利用两种代码的优点。使用管理扩展,现有组件可以方便地封装到.NET组件中,在与.NET集成的同时保留原有投资。

  什么是管理扩展?

  扩展允许你在C++中编写在.NET Framework控制下运行的管理(或.NET)类。(非管理C++类运行在传统的微软基于Windows?的环境中。)一个管理类是一个内置的.NET类,可以完全利用.NET Framework。

  管理扩展是Visual C++开发系统的新关键字和属性。它们允许开发人员决定哪些类或函数编译为管理或非管理代码。这些部分然后就可以平滑地与其它部分或外部库交互。

  管理扩展也用于在C++源代码中表示.NET类型和概念。这就允许开发人员容易地编写.NET应用程序,而无需编写额外代码。

  主要使用环境

  将现有代码平滑地移植到 .NET

  如果你在C++代码上有大量投资,管理扩展将帮你将它们平滑地转移到.NET平台中。因为你可以在一个应用程序--甚至是同一文件中混合管理和非管理代码,你可以用很长时间转移代码,一个组件接一个组件地转换到.NET中。或你可以继续在非管理C++中编写组件,以利用该语言的强大功能和灵活性,只用管理扩展编写少量的高性能的封装器(它使你的代码可以从.NET组件中调用)。

  从 .NET语言中访问C++组件

  管理扩展允许你从任何.NET语言中调用C++类。你需要用扩展编写简单的封装器,它将你的C++类和方法暴露为管理类。封装器是完全的管理类,可以从任何.NET语言中调用。封装器类是作为了管理类与非管理C++类间的映射层。它简单地将方法调用直接传递到非管理类中。管理扩展可用于调用任何内置的动态链接库(DLL)及内置类。

  从内置代码中访问.NET 类

  使用管理扩展,你可以创建并从C++代码中直接调用.NET类。你可以编写将.NET组件当作任何其它管理C++类的C++代码。你可以使用.NET Framework中内置的COM调用.NET类。你使用COM还是使用管理扩展访问.NET组件要依赖于你的工程。在一些情况下,利用现有的COM支持是最好的选择。在另一些情况下,使用管理扩展可能会增加性能和开发者的生产率。

  在同一可执行文件中的管理和内置代码

  Visual C++编译器能在管理和非管理上下文中自动而透明的翻译数据、指针和指令流。这个过程是允许管理扩展无缝地与非管理代码交互的过程。开发人员能够控制什么样的数据和代码可以管理。选择每个类或函数是管理还是非管理的能力为开发人员提供了更大的灵活性。一些代码或数据类型在非管理环境中执行得要比较好。另一方面,管理代码由于如碎片收集和类库等特性,它提高了开发人员的生产率。现有非管理代码可以一次一部分地转化为管理代码,因此保留了已有的投资。

其它资源
来源声明

版权与免责声明
1、本站所发布的文章仅供技术交流参考,本站不主张将其做为决策的依据,浏览者可自愿选择采信与否,本站不对因采信这些信息所产生的任何问题负责。
2、本站部分文章来源于网络,其版权为原权利人所有。由于来源之故,有的文章未能获得作者姓名,署“未知”或“佚名”。对于这些文章,有知悉作者姓名的请告知本站,以便及时署名。如果作者要求删除,我们将予以删除。除此之外本站不再承担其它责任。
3、本站部分文章来源于本站原创,本站拥有所有权利。
4、如对本站发布的信息有异议,请联系我们,经本站确认后,将在三个工作日内做出修改或删除处理。
请参阅权责声明