作者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