c++ - 从托管 C++ 访问 native C++ 数据

标签 c++ native managed

我有一个 native C++ 库,它使用大型静态缓冲区(它从设备获取数据)。

假设这个缓冲区是这样定义的:

unsigned char LargeBuffer[1000000];

现在我想将这个缓冲区的一部分暴露给托管 C++,例如当库将 1000 字节的新数据存储在 LargeBuffer[5000] 时,我想对托管 C++ 代码执行回调,将指针传递给 LargeBuffer[5000]以便托管 C++ 可以访问那里的 1000 字节数据(如果可能,直接访问,即不复制数据,以实现最佳性能)。

让托管 C++ 代码访问此 native 数组中的数据的最佳方法是什么?

最佳答案

托管 C++ 可以很好地访问非托管内存。您可以只传入指针并在托管 C++ 中使用它。

现在,如果您想将该数据传递给其他 .NET 语言,则需要将该数据复制到托管内存结构或使用 C# 中的不安全代码

关于c++ - 从托管 C++ 访问 native C++ 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1975992/

相关文章:

c++ - 捕获异常 : divide by zero

c++ - static_assert - 一种动态自定义错误消息的方法

c++ - GDI+位图保存问题

c# - 从托管 C++ DLL 使用 C# 程序集时崩溃

c++ - 内存地址相同但值不同的指针

c - jni - 将 int[][] 转换为 jobjectArray 并将其返回给 java

android - 在 zygote 外运行原生 android 可执行文件

c - 如何在flutter中运行c静态链接库(.a存档)?

c++ - 函数调用时非托管依赖 dll 加载失败

c# - C++ CLI gcnew 未声明的标识符