请教C#中自定义结构序列化的问题?

问题描述

各位高手:请问在C#中使用Binaryformater将自定义数据结构序列化时,如定义结构structSTData{intnum;chartype;shortarr;bytesig;doublex;};结构采用单字节对齐方式,序列化后字节的数组比结构实际的字节数要大几倍,如何让序列化后字节数组的大小等于实际结构的字节数?由于需要C#通过UDP与VC6之间进行数据通信,在VC6中结构使用单字节对齐后,转换后的字节数组就是实际结构的字节之和,而如果C#转换后的字节数组大小与VC6的字节数组大小不同就无法确保C#与VC6之间的正常通信。请问如何解决这个问题?

解决方案

解决方案二:
序列化后字节的数组比结构实际的字节数要大几倍主要是解决这个问题了,为什么会大好几倍呢?是不是类型不对?你确定采用了单字节对齐方式?

时间: 2024-08-03 05:54:27

请教C#中自定义结构序列化的问题?的相关文章

请教C#下如何序列化自定义结构或类?

问题描述 各位高手:请问在C#中使用Binaryformater将自定义数据结构序列化时,如定义结构structSTData{intnum;chartype;shortarr;doublex;};结构采用单字节对齐方式,序列化后字节的数组比结构实际的字节数要大几倍,如何让序列化后字节数组的大小等于实际结构的字节数?由于需要C#通过UDP与VC6之间进行数据通信,在VC6中结构使用单字节对齐后,转换后的字节数组就是实际结构的字节之和,而如果C#转换后的字节数组大小与VC6的字节数组大小不同就无法确

想请教一下android中自定义布局实现的是什么?是让App自适应吗?

问题描述 想请教一下android中自定义布局实现的是什么?是让App自适应吗? 想请教一下android中自定义布局实现的是什么?是让App自适应吗? 解决方案 http://mobile.51cto.com/abased-459427.htm 解决方案二: 自定义,自己定义文件啊,,可以自己设置风格之类的,更加个性化 解决方案三: 你说的是自定义控件吧?实现的是View类 解决方案四: 自定义布局?你想说的是自定义view么?就是让你不仅仅局限于用它所提供的控件,自己去实现想要的的界面效果

请教jquery中如何写自定义的format方法

问题描述 比如我想在input中自定义一个叫format的参数然后比如我写成这样<input id='input_picture' name='input_picture' type='file' format=test style="float:left;width:70px;height:20px;" ></input>然后test方法如下:function test(id,name,tagname){alert(id);}我想问的是function tes

跪求C#下如何实现自定义结构或类与BYTE数组之间的相互转换(即数据的打包与解包)?

问题描述 请教C#下如何实现自定义结构或类与BYTE数组之间的相互转换(即数据的打包与解包)?在C#定义类似如下的结构和类:[Serializable][StructLayout(LayoutKind.Sequential,Pack=1)]publicstructSTCord{publicdoublex;//publicdoubley;publicbytetype;publicintnum;};[Serializable][StructLayout(LayoutKind.Sequential,P

ASP.NET中JSON的序列化和反序列化

导读:JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大括号'{

在MonoTouch中自定义表格

为什么要定制表格? 表格在很多iPhone应用程序中都是必需的UI元素.虽然对于应用程序开发而言,这并非是一项新发明,鉴于设备尺寸等方面的限制,表格在iPhone中的功能是非常固定的. 苹果在其SDK中,直接内置了很多风格来让你定制表格.不过,在你最初创建表格的时候,它看起来非常简单.在没有进行任何定制的时候,你可以为表格选择两种基本风格,默认风格和分组风格: 在对表格中的单元格进行一点调整后,你就可以添加图标和说明文字: 你甚至能改变单元格的字体和颜色,然而,有时候这样还是不足够.如果你真的想

在C#里面调用带有回调函数和自定义结构体的DLL的例程

函数 开发环境: WinXP Pro(SP2英文版) + VS.NET 2003中文版接口库版本: CMPP2.0 API第二版(V2.6) 该例程演示了如何在C#里面调用VC6.0开发的带回调函数的API,而且回调函数的参数包含结构体,使用C#的委托和IntPtr方法实现. 由于我使用C#刚两天,这是我写的第一个C#程序,因此例程写的可能有点粗糙,但是编译和运行完全没有问题. CMPP2.0的API封装成了标准C调用的方法,提供以下三个接口,使用的时候只要有CMPPAPI.dll就可以了. #

Windows XP中自定义纸型

在Windows 98操作系统中,打印机属性里的纸张选择里有"自定义"一项,比较直观,可以很方便的自定义打印机纸张大小:而Windows XP中"自定义"的位置是不同于Windows 98的,不熟悉的用户很难找到.下面就是在Windows XP中自定义纸型的方法. 创建新格式 以下我们以一个实例说明Windows XP中自定义纸张的具体过程.例如,要定义会计凭证的自定义纸型,其宽度为26cm,高度为13cm,操作步骤如下: 步骤一 单击"开始"

C/C++中的结构体

什么是结构体? 简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有两点不同,首先结构体可以在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同. 定义结构体使用struct修饰符,例如: struct test