我有一个 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/