static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); PRJ_TABLE stPrjTbl = new PRJ_TABLE(); stPrjTbl.nPrjIndex = 1; stPrjTbl.stPrj = new PROJECT_INFO[3]; stPrjTbl.stPrj[0].ulPrjID = 1; stPrjTbl.stPrj[0].dVersion = 10.1; stPrjTbl.stPrj[0].szPrjName = "Prj1"; stPrjTbl.stPrj[1].ulPrjID = 2; stPrjTbl.stPrj[1].dVersion = 10.2; stPrjTbl.stPrj[1].szPrjName = "Prj2"; SERIALIZED_BUF stBUF = new SERIALIZED_BUF(); Byte[] stBuf = new Byte[512]; //将C#中的结构体序列化 CallDll.Serialize(ref stPrjTbl, stBuf, 512); //将序列化后的内容,反序列化为C#中的结构体 PRJ_TABLE stPrjTblOut = new PRJ_TABLE(); CallDll.Deserialize(ref stPrjTblOut, stBuf); }
public static extern void Serialize(ref PRJ_TABLE stPrjTbl, Byte[] stBuf, int nBuffSize);
public static extern void Deserialize(ref PRJ_TABLE stPrjTbl, Byte[] strContent);