• C#将 byte[ ] 转换为对应的struct


    using System.Runtime.InteropServices; //WinAPI引用命名空间
     
     
            /// <summary>
            /// 将Byte转换为结构体类型
            /// </summary>
            /// <param name="bytes"></param>
            /// <param name="type"></param>
            /// <returns></returns>
            public static object ByteToStruct(byte[] bytes, Type type)
            {
                int size = Marshal.SizeOf(type);
                if (size > bytes.Length)
                {
                    return null;
                }
                //分配结构体内存空间
                IntPtr structPtr = Marshal.AllocHGlobal(size);
                //将byte数组拷贝到分配好的内存空间
                Marshal.Copy(bytes, 0, structPtr, size);
                //将内存空间转换为目标结构体
                object obj = Marshal.PtrToStructure(structPtr, type);
                //释放内存空间
                Marshal.FreeHGlobal(structPtr);
                return obj;
            }
  • 相关阅读:
    spring1冲刺感想与总结
    Scrum 项目7.0
    读《构造之法》8、9、10章有感
    Scrum4.0+5.0
    scrum3.0
    0512操作系统之进程调度
    Scrum 项目1.0
    团队之阅读感想
    sprint3终极演示
    0622—软件工程第一学期总结
  • 原文地址:https://www.cnblogs.com/dj1232090/p/14606713.html
Copyright © 2020-2023  润新知