与非托管代码进行交互操作Interoperating with unmanaged code

本文内容

.NET Framework 提升与 COM 组件、COM+ 服务、外部类型库和许多操作系统服务的交互。托管和非托管对象模型之间的数据类型、方法签名和错误处理机制有所不同。要简化 .NET Framework 组件和非托管代码之间的互操作并简化迁移路径,公共语言运行时需对客户端和服务器隐藏这些对象模型中的差异。

在运行时控制下执行的代码称为托管代码。反之,在运行时以外运行的代码称为非托管代码。COM 组件、ActiveX 接口和 Windows API 函数都是非托管代码的示例。

本节内容In this section

向 .NET Framework 公开 COM 组件描述如何使用 .NET Framework 应用程序的 COM 组件。

向 COM 公开 .NET Framework 组件描述如何使用 COM 应用程序的 .NET Framework 组件。

使用非托管 DLL 函数描述如何使用平台调用调用非托管 DLL 函数。

互操作封送处理描述 COM 互操作和平台调用的封送处理。

如何:映射 HRESULT 和异常描述异常和 HRESULT 之间的映射。

COM 包装介绍 COM 互操作提供的包装器。

类型等效性和嵌入的互操作类型介绍如何在程序集中嵌入 COM 类型的类型信息,以及公共语言运行时如何确定嵌入的 COM 类型的等效性。

如何:使用 Tlbimp.exe 生成主互操作程序集介绍如何使用 Tlbimp.exe (类型库导入程序)生成主要互操作程序集。

如何:注册主互操作程序集介绍如何注册主互操作程序集,然后才能在项目中引用它们。

免注册 COM 互操作介绍 COM 互操作如何在不使用 Windows 注册表的情况下激活组件。

如何:配置基于 .NET Framework 的 COM 组件以进行免注册激活介绍如何创建应用程序清单以及如何创建并嵌入组件清单。