3

Is it possible on windows for unmanaged code (c++ / c) to write to an area in memory that is then accessed by managed .Net code (c#) (separate processes) I have a c program that is writing data to an circular memory buffer and I want to process the buffer with unmanaged code.

4 Answers 4

4

If you're looking for a solution where an unmanaged process and managed process can share memory, then you can use the MemoryMappedFile class (introduced in .NET 4.0).

If you're looking to share memory between unmaanged and managed code in the same process, then you can use GCHandle to pin a managed array in memory, and pass it to unmanaged code which can access it.

Sign up to request clarification or add additional context in comments.

Comments

3

I think you're looking for Marshaling

Comments

1

Yes,

you should use the Marshall class, especially Marshal.AllocHGlobal..

Comments

1

Yes, take a look at the unsafe and fixed keywords.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.