IntPtr到Byte []数组C#

时间:2014-09-25 09:19:01

标签: c# arrays byte typeconverter

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

现在我想将这些数据从IntPtr转换为Byte []而不使用Marshal.Copy。因为内核空间中的内存已经分配。我只想将这些数据解释为字节数组。

我知道有一个功能“InteropUtils.ConvertIntPtrToByteArray-Methode”,但它仅适用于智能设备等。

也许有人有更好的主意?

1 个答案:

答案 0 :(得分:0)

您提出的问题是不可能的,因为IntPtr代表非托管内存区域,而byte []数组代表托管内存区域。不可能将非托管区域视为托管区域。

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