簡體   English   中英

c#托管代碼和非托管代碼之間的共享內存

[英]c# shared memory between managed and unmanaged code

是否有可能在Windows上為非托管代碼(c ++ / c)寫入內存區域,然后由托管.Net代碼(c#)訪問(單獨的進程)我有一個將數據寫入循環內存緩沖區的ac程序我想用非托管代碼處理緩沖區。

如果您正在尋找非托管進程和托管進程可以共享內存的解決方案,那么您可以使用MemoryMappedFile類 (在.NET 4.0中引入)。

如果您希望在同一進程中共享無管理代碼和托管代碼之間的內存,則可以使用GCHandle將托管數組固定在內存中,並將其傳遞給可以訪問它的非托管代碼。

我想你正在尋找Marshaling

是的,看看不安全固定的關鍵字。

是,

你應該使用Marshall課程,特別是Marshal.AllocHGlobal。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM