zoukankan
html css js c++ java
从struct到byte[]之RawFormatter
public
partial
class
Form1 : Form
{
public
Form1()
{
InitializeComponent();
}
private
void
Form1_Load(
object
sender, EventArgs e)
{
Demo d
=
new
Demo();
d.a
=
5
;
d.b
=
10
;
d.c
=
new
byte
[]
{
1
,
2
,
3
}
;
d.s
=
"
123
"
;
byte
[] buf
=
RawFormatter.RawSerialize(d);
MessageBox.Show(
"
aaa
"
);
}
}
[StructLayout(LayoutKind.Sequential,Pack
=
1
,CharSet
=
CharSet.Ansi)]
struct
Demo
{
public
byte
a;
public
int
b;
[MarshalAs(UnmanagedType.ByValArray, SizeConst
=
3
)]
public
byte
[] c;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst
=
5
)]
public
string
s;
}
public
class
RawFormatter
{
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;
}
}
QQ:273352165 evlon#126.com 转载请注明出处。
查看全文
相关阅读:
canvas gamebricks
javascript 判断对象的值是否相等
让控件全屏显示(WinForm)
网络视频监控
回调函数
[导入][链接]FreeBSD + Sun Java
[导入][一点一滴学英语]20060330
[导入][来自网络] 酸酸甜甜就是我 不用我多介绍了 可是你是否听过天津话的版本?
[导入][链接]差点漏掉 Eclipse 3.2 M6出来了
[导入][链接]Five reasons why you should never use PostgreSQL
原文地址:https://www.cnblogs.com/evlon/p/865272.html
最新文章
C#——细说事务(上)
TransactionOptions
四种浏览器对 document.body 的 clientHeight、offsetHeight 和 scrollHeight 的解释
js中不同的高度(height)对比
C#——细说事务(下)
延迟加载转换为即使加载
显式事务、隐式事务、分布式隐式事务、分布式显式事务 定义以及事例
IIS服务器是如何处理ASP.NET请求的?
C#3.0委托之委托变量的使用实例
asp.net编程:asp.net中如何设置页面的编码
热门文章
ASP.NET web.config个节点详解
VS2008,vs2010 快捷键大全
ASP.NET UrlRewrite简单学习总结(转)
“Insert into 语句的语法错误”的解决方法
ASP.NET ACCESS 分页
ASP.NET夜话
教你读懂ASP.NET Web.config与代码优化
.net面试问答(大汇总)
WebService的几种验证方式
animation
Copyright © 2011-2022 走看看