是否可以在Windows上为非托管代码(c ++ / c)写入内存中的某个区域,然后由托管的.Net代码(c#)访问(单独的进程)我有一个将数据写入循环的ac程序内存缓冲区,我想用非托管代码处理缓冲区。
答案 0 :(得分:4)
如果您正在寻找非托管进程和托管进程可以共享内存的解决方案,那么您可以使用MemoryMappedFile class(在.NET 4.0中引入)。
如果您希望在相同的进程中共享无管理代码和托管代码之间的内存,那么您可以使用GCHandle
将托管数组固定在内存中,并将其传递给非托管代码可以访问它的代码。
答案 1 :(得分:3)
我认为你正在寻找Marshaling
答案 2 :(得分:1)
答案 3 :(得分:1)
是的,
你应该使用Marshall课程,尤其是Marshal.AllocHGlobal.。