作者afar ( ???)
看板C_Sharp
标题[问题] struct 和 byte[] 的转换
时间Tue Feb 10 04:23:18 2009
就是目前想要在PDA上写一个程式
用UDP广播一笔struct资料
但是在转换上遇到问题
上GOOGLE找了一下发现到这个程式码
http://0rz.tw/IQaSC
using System.Security.Permissions;
public static byte[] RawSerialize(object anything)
{
int rawsize = Marshal.SizeOf(anything);
IntPtr buffer = Marshal.AllocHGlobal(rawsize);
Marshal.StructureToPtr(anything, buffer, false);
byte[] rawdatas = new byte[rawsize];
Marshal.Copy(buffer, rawdatas, 0, rawsize);
Marshal.FreeHGlobal(buffer);
return rawdatas;
}
public static object RawDeserialize(byte[] rawdatas, Type anytype)
{
int rawsize = Marshal.SizeOf(anytype);
if (rawsize > rawdatas.Length)
return null;
IntPtr buffer = Marshal.AllocHGlobal(rawsize);
Marshal.Copy(rawdatas, 0, buffer, rawsize);
object retobj = Marshal.PtrToStructure(buffer, anytype);
Marshal.FreeHGlobal(buffer);
return retobj;
}
但是在执行这两个函数总是会当机
上MSDN查似乎需要权限
但是却不知道该如何设定
问题是出在权限上吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.70.172.14