C++ CLI 中本机数组的 Memcpy 到托管数组

2023-11-24

我这样做对吗?

我得到一个指向本机数组的指针,需要复制到托管数组。将 memcpy() 与 pin_ptr 一起使用。

unsigned char* pArray;
unsigned int arrayCount;
// get pArray & arrayCount (from a COM method) 

ManagedClass->ByteArray = gcnew array<Byte,1>(arrayCount)
pin_ptr<System::Byte> pinPtrArray = &ManagedClass->ByteArray[0];
memcpy_s(pinPtrArray, arrayCount, pArray, arrayCount);

arrayCount 是 pArray 的实际长度,因此不必担心这方面。查看代码,数组是从向量复制的。所以我可以安全地设置托管数组的大小。


这有效,但不安全。当你得到时,你会把垃圾收集堆炸成碎片数组计数错误的。很难诊断。

Marshal::Copy() 既安全又快速。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ CLI 中本机数组的 Memcpy 到托管数组 的相关文章

随机推荐

  • 访问 .NET 中 VBA 函数的返回值?

    我在 VBA 中有以下代码 位于 Excel 2007 工作簿中 Public Function Multiply a As Double b As Double As Double Multiply a b End Function 如果
  • 如何可靠地从 AttributeSet 获取颜色?

    我想创建一个自定义类 在 Android XML 文件中布局时将颜色作为其属性之一 然而 颜色可以是一种资源 也可以是多种直接颜色规范之一 例如十六进制值 有没有一种简单的首选方法来使用AttributeSet检索颜色 因为表示颜色的整数可
  • 在终端中运行文本文件

    有谁知道是否有办法在 shell 中自动运行命令列表 来自文本文件 我需要运行很多脚本 大约 1000 个 这些脚本采用 python 语言 每个有 2 个参数 dir 和 example 我制作的文本文件看起来像这样 python hom
  • SpringHibernateJpaPersistenceProvider 类未实现请求的接口 PersistenceProvider

    我很困惑 我已经好几年没有使用过 Hibernate 了 然后就再也没有使用过 Spring Boot Spring Boot 但从未与 Hibernate 或 JPA 一起使用 所以我想弄清楚如何让它为我的工作工作 我应该在周一演示一些东
  • F#:重载函数

    我的问题与此有些相关 具有泛型参数类型的函数 但我不太清楚如何做我想做的事 我想定义一个 后代函数 来包装对各种 C 类上 后代 的调用 如下所示 让后代名称 xDocument XDocument xDocument 后代名称 让后代名称
  • 错误 310(net::ERR_TOO_MANY_REDIRECTS):

    我在本地主机上没有收到此错误 只有当我上传到我的服务器时 此错误才会出现在我的页面之一上 知道我需要改变什么吗 我在网络浏览器中遇到了这个错误 其中我访问的网页重定向到另一个网页 该网页无限地重定向回原始页面 我还遇到过编程错误不断重新加载
  • 针对多个快速请求的 .htaccess 或 PHP 保护代码

    我正在寻找如何阻止外部脚本与我的网站连接的想法 我正在寻找谷歌背后同样的想法 就像在一定时间内发出一定数量的请求然后阻止 IP 地址或其他内容一样 我想也许有一个 htaccess 解决方案 如果没有 我会写一个 PHP 解决方案 非常感谢
  • 根据参数的真实类型选择重载方法

    我正在尝试这段代码 interface Callee public void foo Object o public void foo String s public void foo Integer i class CalleeImpl
  • 使用 jQuery 在文本区域中的光标位置创建工具提示

    我正在尝试在文本区域中的输入插入符号上方创建一个工具提示 如果我能够获得文本区域中插入符号的 x y 坐标 这将很容易 但是我已经搜索了一段时间 但不知道如何做到这一点 假设用户正在文本区域中输入内容 然后按某个键 例如 符号 我试图在文本
  • SQLAlchemy 中不区分大小写的字符串列?

    我可以在 sqlalchemy 中创建不区分大小写的字符串列吗 我正在使用 sqlite 并且可能有一种方法可以通过更改排序规则来通过数据库来完成此操作 但我想将其保留在 sqlalchemy python 中 在 SQLAlchemy 0
  • QQ剧情:多于两条数据

    我想画一个类似于这张图的QQ图 我设法使用两个样本获得了 QQ 图 但我不知道如何将第三个样本添加到图中 这是我的结果 这是我使用的代码 qqplot table Bedouin table Tunisia xlim c 0 25 0 25
  • 如何使用 XMLStarlet 将一个元素直接插入到另一个元素之后?

    对于这个 XML 示例
  • PHP 中的 Yield 是什么意思?

    我最近偶然发现了这段代码 function xrange min max for i min i lt max i yield i 我从没见过这个yield之前的关键字 尝试运行我得到的代码 解析错误 语法错误 第 x 行出现意外的 T V
  • TestNG 与 IntelliJ IDEA:如何在 IntelliJ IDEA 9 中使用 testng.xml 文件

    我能够在 IntelliJ 中运行 TestNG 单元测试并在窗口中查看通过 失败输出 这是没有使用任何testng xml文件 我还可以使用 maven 在命令行中运行测试 即mvn clean test Dgroups fast 效果很
  • 我应该将 sqlite 数据库文件写入文档目录还是库/缓存吗?

    我已经阅读了 Apple 的数据存储指南 并且对于应该将我在应用程序中创建的 sqlite 数据库文件保存在哪里感到非常困惑 即使应用程序处于离线模式 我也想读取 sqlite 文件 我读到创建的此类文件应该保存在库 缓存中 并设置 不备份
  • 如何在 alpine Dockerfile 中创建并添加带密码的用户?

    下列Dockerfile在 Ubuntu 上运行良好 FROM ubuntu 20 04 SHELL bin bash c ARG user hakond ARG home home user RUN useradd create home
  • 如何在 datagridview 列中显示枚举值

    我有这个数据库 不是我设计的 但我必须使用它 其中包含一个如下表 id Name status 1 Product1 2 2 Product2 2 3 Product3 3 status 属性指的是一个枚举 其中 0 Invalid 1 D
  • jQuery 选择其中属性 = 值

    我正在尝试选择一个值等于动态值的输入 trimmed jQuery trim a preSelectedCheckBox this find input value trimmed 该元素存在 但我始终没有返回任何值 preSelected
  • 尝试使 Rpy2 2.1.9 与 R 2.12.1 一起使用时出现奇怪的问题,在 Windows xp 下使用 Python 2.6 - Rpy 找不到 R.dll?

    我一直在尝试让 Rpy2 与我的 R 安装兼容时遇到一个真正的问题 我首先尝试安装 rpy2 MSI 软件包 但这似乎不起作用 当我运行推荐的测试时 它给我一个错误 说它找不到 R dll 因为新的 R 安装 2 11 后 将 DLL 安装
  • C++ CLI 中本机数组的 Memcpy 到托管数组

    我这样做对吗 我得到一个指向本机数组的指针 需要复制到托管数组 将 memcpy 与 pin ptr 一起使用 unsigned char pArray unsigned int arrayCount get pArray arrayCou