C#管理代码和非托管代码之间的共享内存

3

在Windows平台上,是否可能由非托管代码(C++/C)写入一个内存区域,然后由托管的.Net代码(C#)(分离的进程)访问该内存区域?我有一个C程序正在将数据写入循环内存缓冲区,我想使用非托管代码处理该缓冲区。

4个回答

4

如果您正在寻找一种解决方案,使未管理的进程和托管进程可以共享内存,则可以使用.NET 4.0中引入的MemoryMappedFile类

如果您想在同一进程中在未管理的代码和托管代码之间共享内存,则可以使用GCHandle将托管数组固定在内存中,并将其传递给可以访问它的未管理的代码。


3

我认为您正在寻找封送相关的内容。


1

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接