C#byte[]structintptr等的相互转换

Posted 【君莫笑】

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#byte[]structintptr等的相互转换相关的知识,希望对你有一定的参考价值。

一、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);
           
       

二、Intptr、byte[]互相转换

        //IntPtr转byte[]
IntPtr y=new IntPtr(); 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);

 

 

 

来源:https://www.cnblogs.com/jhlong/p/5715015.html

以上是关于C#byte[]structintptr等的相互转换的主要内容,如果未能解决你的问题,请参考以下文章

C# string类型和byte[]类型相互转换

C语言 unsigned short 如何相互转 signed char

Android-DrawableBitmapbyte[]资源文件相互转换

C# string和byte[]数组之间相互转换

C# Byte[]ImageBitmap 之间的相互转换

2015.5.11 string与byte[]相互转换