扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
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++编译器能在管理和非管理上下文中自动而透明的翻译数据、指针和指令流。这个过程是允许管理扩展无缝地与非管理代码交互的过程。开发人员能够控制什么样的数据和代码可以管理。选择每个类或函数是管理还是非管理的能力为开发人员提供了更大的灵活性。一些代码或数据类型在非管理环境中执行得要比较好。另一方面,管理代码由于如碎片收集和类库等特性,它提高了开发人员的生产率。现有非管理代码可以一次一部分地转化为管理代码,因此保留了已有的投资。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者