IntPtr to Byte[] Array C#

本文关键字:Array to Byte IntPtr | 更新日期: 2023-09-27 18:24:29

我有一个由非托管代码给定的IntPtr(c#)。我知道这是对具有4096个元素的字节数组的引用。

现在我想在没有Marshal.Copy的情况下将这些数据从IntPtr转换为Byte[]。因为内核空间中的内存已经分配好了。我只想将这些数据解释为一个字节数组。

我知道有一个函数"InteropUtils.ConvertIntPtrToByteArray Methode",但它只适用于智能设备等。

也许有人有更好的主意?

IntPtr to Byte[] Array C#

您所问的是不可能的,因为IntPtr表示非托管内存区域,而byte[]数组表示托管

您必须将数据复制到托管区域(通过Marshal.copy),或者使用不安全的代码直接操作它。