【问题标题】:IntPtr to Byte[] Array C# [duplicate]IntPtr 到字节 [] 数组 C# [重复]
【发布时间】:2014-09-25 09:19:01
【问题描述】:

我有一个来自非托管代码的 IntPtr (c#)。我知道这是对包含 4096 个元素的字节数组的引用。

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

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

也许有人有更好的主意?

【问题讨论】:

标签: c# arrays byte typeconverter


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-25
    • 2017-09-21
    • 2011-06-30
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    相关资源
    最近更新 更多