在C#中有一些类型在托管与非托管代码之间可以直接使用,不需要进行任何转换,这些类型就称之为 blittable types

类型如下:

System.Byte System.SByte System.Int16 System.UInt16
System.Int32 System.UInt32 System.Int64 System.UInt64
System.IntPtr System.UIntPtr System.Single System.Double

还有另外两种特殊的blittable类型

1、一维blittable类型的数组,但是,包含 blittable 类型变量数组的类型本身不是 blittable 类型

2、所有只包含blittable类型(以及作为格式化类型进行封送的类)的格式化的值类型。可参见(https://docs.microsoft.com/zh-cn/dotnet/framework/interop/default-marshaling-behavior#default-marshaling-for-value-types

 

对象引用属于non-blittable类型。

 

non-blittable types在进行平台调用时,必须将这些 non-blittable 数据类型转换为可以封送的形式,这里就不详细说明了。有需要的小伙伴可查看

https://docs.microsoft.com/en-us/dotnet/framework/interop/blittable-and-non-blittable-types

 

相关文章:

  • 2022-12-23
  • 2021-09-17
  • 2021-07-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-04
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-16
相关资源
相似解决方案