混合(本机和托管)程序集

混合程序集能够同时包含非托管计算机指令和 MSIL 指令。 这使它们可以调用 .NET 组件或被其调用,同时保留与完全非托管组件的兼容性。 使用混合程序集,开发人员可以混合使用托管和非托管功能创作应用程序。 这使得混合程序集成为将现有 Visual C++ 应用程序迁移到 .NET 平台的理想选择。

例如,通过使用 /clr 编译器开关仅重新编译一个模块,就可将完全由非托管函数组成的现有应用程序迁移到 .NET 平台。 然后,此模块就可以使用 .NET 功能,但是仍保留与应用程序的其余部分的兼容性。 通过此种方式,应用程序可以按渐近、逐个部分的方式转换到 .NET 平台。 甚至可以决定在同一文件内每个函数的基础上进行托管或非托管编译(请参见 managed, unmanaged)。

Visual C++ 支持生成三种不同类型的托管程序集:混合程序集、纯程序集和可验证程序集。 后两者在纯代码和可验证代码 (C++/CLI)中讨论。

本节内容

有关混合程序集的编码准则的更多信息,请参见位于 https://msdn.microsoft.com/zh-cn/netframework/default.aspx?pull=/library/zh-cn/dndotnet/html/manunmancode.asp 的 MSDN 文章“An Overview of Managed/Unmanaged Code Interoperability”(托管/非托管代码互操作性概述)。

请参见

其他资源

本机和 .NET 的互操作性