[C#] 如何把void*转换为byte[]】的更多相关文章

一般来说,C#库的对外接口应该提供byte[]这样比较容易用的接口,而不应该提供裸的void* 但是有些库确实是这么封装的.那么就有一个如何转换的问题.MSDN推荐的转换方式是使用UnmanagedMemoryStream.代码如下: byte[] data = null; unsafe { int iLen; void* lpdata; data = new byte[iLen]; using (UnmanagedMemoryStream ms = new UnmanagedMemoryStr…
public static void BlockCopy(Array src, int srcOffset, Array dst, int dstOffset, int count); 将指定数目的字节从起始于特定偏移量的源数组复制到起始于特定偏移量的目标数组. /// <summary> /// C#中使用Buffer.BlockCopy()方法将string转换为byte array的方法 /// </summary> /// <param name="str&…
[DllImport("OpenNetStream.dll")] public static extern int OpenSDK_Data_GetDevList(IntPtr szAccessToken, int iPageStart, int iPageSize, ref IntPtr pBuf, ref int iLength); //其中pBuf参数,为返回的一个byte[]数据,现在要将其转换为byte[],然后在转换为string ; byte[] managedArray…
/// <summary> /// 网络流转换为Byte数组 /// </summary> /// <param name="stream"></param> /// <returns></returns> public static byte[] ReadFully(Stream stream) { ]; using (MemoryStream ms = new MemoryStream()) { while (…
/// <summary> /// 将图片以二进制流 /// </summary> /// <param name="path"></param> /// <returns></returns> public byte[] SaveImage(String path) { FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); //…
/// <summary> /// 16进制字符转换为byte数组 /// </summary> /// <param name="hexString">偶数位,由16进制字符[0-9a-fA-F]组成</param> /// <returns>null为转换失败</returns> private byte[] HexStringToBytes(string hexString) { if (string.IsN…
private PreviewCallback pc = new PreviewCallback(){ public void onPreviewFrame(byte[] data, Camera arg1) { Camera.Parameters parameters=arg1.getParameters(); int imageFormat=parameters.getPreviewFormat(); int w=parameters.getPreviewSize().width; int…
  按照孙鑫的教程添加自定义消息时,如果是VC6.0开发环境,也许没有什么 问题,但在VS2008中编译会报错的 无法从"void (__thiscall CtestDlg::* )(void)"转换为"LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)" 这是因为VS2008中消息返回值不允许为void,且消息参数不能为空,消息映射三处分别如下 #define UM_MYMESSAGE (WM_USER + 1)   afx_…
/// <summary>  /// 将一个object对象序列化,返回一个byte[]          /// </summary>  /// <param name="obj">能序列化的对象</param>          /// <returns></returns>  public static byte[] ObjectToBytes(object obj) { using (MemoryStrea…
private byte[] InputStream2ByteArray(String filePath) throws IOException { InputStream in = new FileInputStream(filePath); byte[] data = toByteArray(in); in.close(); return data; } private byte[] toByteArray(InputStream in) throws IOException { ByteA…