IT培训网

关注我们

微信公众号 微信公众号 回复"大礼包"享福利 抖音 抖音 回复"大礼包"享福利
| |
您所在的位置:首页 > 北大青鸟热门技术 > C语言技术 > C#解析结构体指针浅析 北大青鸟C#技术

C#解析结构体指针浅析 北大青鸟C#技术

发布:武汉宏鹏 来源:北大青鸟北校区 2013-04-05 15:38 手机端入口

  北大青鸟C#技术:C#解析结构体指针浅析

        C#语言有很多值得学习的地方,这里我们主要介绍C#解析结构体指针,包括介绍也可将结构体赋值后封送到非托管内存。等方面。

  在C#解析结构体指针前,必须知道结构体是如何定义的。

  [StructLayout(LayoutKind.Sequential)]

  public struct VGAStat

  {

  public int ChannelNum;

  //通道数量

  [MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]

  public char[] Version;

  //版本信息

  public uint CPUUsage;

  //CPU占用

  public bool WorkStatusOk;

  //工作状态

  [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]

  public tagCheckArg[] ChannelStatistic;

  //通道信息

  }

  定义完结构体后,就可将接收到C#解析结构体指针转换为定义的结构体对象。

  VGAStat entries = (VGAStat)Marshal.PtrToStructure(iptr, typeof(VGAStat));

  //iptr为接收到的非托管的结构体指针。

  反之,也可将结构体赋值后封送到非托管内存。

  假如vga为定义后实例化并赋值了的结构体。

  IntPtr intptr = Marshal.AllocHGlobal(Marshal.SizeOf(vga));

  Marshal.StructureToPtr(vga, intptr, true);

  //在此发送intptr指针给目的方

  Marshal.FreeHGlobal(intptr);

  //释放分配的非托管内存。

       北大青鸟武汉宏鹏校区C#技术报名学习:17740513250

这篇关于“C#解析结构体指针浅析 北大青鸟C#技术” 已帮助189人,希望也能帮到你!

>>本文地址:http://www.xgaccp.com/html/3849.html

C#解析结构体指针浅析 北大青鸟C#技术
声明:本站稿件版权均属北大青鸟所有,未经许可不得擅自转载。
相关文章推荐
扫码领PS/Office视频课

PS共28课时,Office共43课时

扫码领视频课

Hello~
    一键扫码申请

扫码领视频课 每人限领一份
领取之日起2年内有效