byte[] StructureToByteArray(cStoredFullGame game) { int len = Marshal.SizeOf(game); Console.WriteLine("Len: " + len); byte[] arr = new byte[len]; IntPtr ptr = Marshal.AllocHGlobal(len); try { Marshal.StructureToPtr(game, ptr, false); Marshal.Copy(ptr, arr, 0, len); } finally { Marshal.FreeHGlobal(ptr); } return arr; }
// Envoi du jeux sur le serveur public void OpSetFullGame(cStoredFullGame game) { byte[] buffer = new byte[Marshal.SizeOf(game)]; Console.WriteLine(Marshal.SizeOf(game)); buffer = this.StructureToByteArray(game); /*for (int i = 0; i < buffer.Length; i++) Console.Write(buffer[i]);*/ OperationRequest op = new OperationRequest { OperationCode = 253, Parameters = new Dictionary<byte, object> { { 100, buffer } } }; try { this.sendRequest(op, true); } catch (Exception e) { Console.WriteLine(e); } }