[C#] 如何把void*转换为byte[]

来源:互联网 发布:数据库怎么设置外键 编辑:程序博客网 时间:2024/04/30 01:29

一般来说,C#库的对外接口应该提供byte[]这样比较容易用的接口,而不应该提供裸的void*

但是有些库确实是这么封装的。那么就有一个如何转换的问题。MSDN推荐的转换方式是使用UnmanagedMemoryStream。代码如下:


byte[] data = null;unsafe{int iLen;void* lpdata;data = new byte[iLen];using (UnmanagedMemoryStream ms = new UnmanagedMemoryStream((byte*)lpdata, iLen)){ms.Read(data, 0, data.Length);}}


0 0
原创粉丝点击