平台调用——结构的封送

本文介绍了C#中的StructLayoutAttribute类,用于控制内存中类或结构的数据字段布局。讨论了LayoutKind.Sequential和LayoutKind.Explicit两种布局方式,并详细阐述了如何在C#中处理C/C++中的指针类型,以及在封送过程中的注意事项。
摘要由CSDN通过智能技术生成

关于结构的封送,先看一个类 StructLayoutAttribute 

该类的作用是,允许控制内存中类或结构的数据字段的物理布局。

该类的层次结构为:

System.Object System.AttributeSystem.Runtime.InteropServices.StructLayoutAttribute.

以下主要是在C/C++ 与 C#之间的结构体封送的说明

数据的布局:

在C/C++中定义有如下结构体:

typedef struct tagInetAddr_t
{
      unsigned int;
      unsigned short;
      unsigned char[2];
}InetAddr_t


而在C#中要定义一个适用的结构体时,可以使用该类控制结构成员的布局情况,例:

[StructLayoutAttribute(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public struct tagInetAddr_t
{
       /// unsigned int
       public uint ip;

       /// unsigned short
       public u
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值