zoukankan      html  css  js  c++  java
  • C# byte[]、struct、intptr等的相互转换

    1.struct byte[]互相转换

    
    
     //struct转换为byte[]
            public static byte[] StructToBytes(object structObj)
            {
                int size = Marshal.SizeOf(structObj);
                IntPtr buffer = Marshal.AllocHGlobal(size);
                try
                {
                    Marshal.StructureToPtr(structObj, buffer, false);
                    byte[] bytes = new byte[size];
                    Marshal.Copy(buffer, bytes, 0, size);
                    return bytes;
                }
                finally
                {
                    Marshal.FreeHGlobal(buffer);
                }
            }
    
            //byte[]转换为struct
            public static object BytesToStruct(byte[] bytes, Type type)
            {
                int size = Marshal.SizeOf(type);
                IntPtr buffer = Marshal.AllocHGlobal(size);
                try
                {
                    Marshal.Copy(bytes, 0, buffer, size);
                    return Marshal.PtrToStructure(buffer, type);
                }
                finally
                {
                    Marshal.FreeHGlobal(buffer);
                }
            }
    

     

    2.Intptr、byte[]互相转换

    //IntPtr转byte[]

    IntPtr y;//初始化 略 byte[] ys = new byte[yLength]; Marshal.Copy(y, ys, 0, yLength);



    //byte[]转换为Intptr
            public static Intptr BytesToIntptr(byte[] bytes)
            {
                int size = bytes.Length;
                IntPtr buffer = Marshal.AllocHGlobal(size);
                try
                {
                    Marshal.Copy(bytes, 0, buffer, size);
                    return buffer;
                }
                finally
                {
                    Marshal.FreeHGlobal(buffer);
                }
            }

    至于struct和Intptr转换,完全可以参考上面的函数

  • 相关阅读:
    Perforce笔记
    Lumia 800 无法正常开机
    Windows service 中出现Set ServiceLogin 对话框
    华为要求七千员工先辞职再竞岗 补偿费超10亿
    BLOG新址:http://longware.spaces.live.com
    家装(2)
    解脱
    论持久战
    有感于软件项目测试
    THE POEM AS A GIFT FOR MY GF'S BIRTHDAY
  • 原文地址:https://www.cnblogs.com/jhlong/p/5715015.html
Copyright © 2011-2022 走看看