C# byte[]、struct、intptr等的相互转换
生活随笔
收集整理的這篇文章主要介紹了
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[]轉換為structpublic 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[]轉換為Intptrpublic 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轉換,完全可以參考上面的函數
?
轉載于:https://www.cnblogs.com/jhlong/p/5715015.html
總結
以上是生活随笔為你收集整理的C# byte[]、struct、intptr等的相互转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python基础--列表
- 下一篇: 转载 素性测试