雨笑烟燃

专注于VB.net.关注WPF.

« Sourcegrid.Grid退出编辑模式新开交流QQ群:167435826 »

Structure 与Byte之间的转化

Structure –>byte

   1:  Public Function RawSerialize(o As Object) As Byte()
   2:          Dim rawSize As Integer = Marshal.SizeOf(o)
   3:          Dim buffer As IntPtr = Marshal.AllocHGlobal(rawSize)
   4:          Marshal.StructureToPtr(o, buffer, False)
   5:          Dim rawDatas As Byte() = New Byte(rawSize) {}
   6:          Marshal.Copy(buffer, rawDatas, 0, rawSize)
   7:          Marshal.FreeHGlobal(buffer)
   8:          Return rawDatas
   9:      End Function

byte—>Structure

   1:  Public Function RawDeserialize(rawdata As Byte(), position As Integer, t As Type) As Object
   2:          Dim rawsize As Integer = Marshal.SizeOf(t)
   3:          If rawsize > rawdata.Length Then
   4:              Return Nothing
   5:          End If
   6:          Dim buffer As IntPtr = Marshal.AllocHGlobal(rawsize)
   7:          Marshal.Copy(rawdata, position, buffer, rawsize)
   8:          Dim retobj As Object = Marshal.PtrToStructure(buffer, t)
   9:          Marshal.FreeHGlobal(buffer)
  10:          Return retobj
  11:      End Function
  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Walle Build 100427

Copyright yxyr.com ,Some Rights Reserved.浙ICP备06021833号