62、.NET 与非托管代码交互:System.Runtime.InteropServices 命名空间详解

.NET 与非托管代码交互:System.Runtime.InteropServices 命名空间详解

在 .NET 开发中,与非托管代码进行交互是一项常见的需求。 System.Runtime.InteropServices 命名空间提供了一系列的类型和工具,帮助开发者实现与非托管代码的互操作性。本文将详细介绍该命名空间中的部分重要类型及其使用方法。

1. UnmanagedMarshal

UnmanagedMarshal 类位于 System.Reflection.Emit 命名空间( mscorlib.dll ),它定义了在调用非托管代码时,参数或字段应如何进行封送处理。默认情况下,CLR 在封送过程中会自动应用某些格式转换,例如将 System.String 对象转换为非托管的 BSTR 。可以使用该类来覆盖默认行为。

创建 UnmanagedMarshal 实例,可使用以下静态方法之一来定义所需的非托管类型:

public sealed class UnmanagedMarshal {
    // Public Instance Properties
    public field UnmanagedType BaseType{get; } 
    public field int ElementCount{get; } 
    public field UnmanagedT
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值