<p>I would not go that route. Have you tried to pin the arrays in managed code and marshalling just the pointers, using unsafe C# code obviously? It would do what you want, avoid copying, but with no need to do hard to maintain hacks... ;-)</p>

<p>Have fun,</p>
<div class="gmail_quote">Em 02/12/2012 18:12, "Marcelo Zabani" <<a href="mailto:mzabani@gmail.com">mzabani@gmail.com</a>> escreveu:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi everyone, I've been trying to find a way to invoke unmanaged code without any marshaling, i.e. by making my unmanaged functions receive Mono's objects (or their addresses).<div>I've read the Embedding Mono page (a very good one at that) and found that if I embed Mono in my application, I could call mono_add_internal_call on my unmanaged functions and mark my C# methods with [MethodImplAttribute(MethodImplOptions.InternalCall)]; there is a catch in my case, however.</div>

<div>I am not trying to embed Mono in my application, I'm trying to avoid marshaling from my "standard" .NET app to my C API calls since my C functions deal with large byte arrays all the time, and this implies a significant overhead in allocating and copying them. I would much rather try pinning the arrays and accessing the underlying C-like array directly in some cases (is this possible and is this in Mono's public API?). For this reason, I can only run mono_add_internal_call after my managed code has already executed, and apparently because of this I'm getting </div>

<div><div><br></div><div>     Unhandled Exception: System.MissingMethodException: Cannot find the requested method.</div></div><div><br></div><div>Is there anyway to achieve what I want?<br></div><div>This is my first time with Mono's internals and I'm only beginning with Interop, so please excuse any stupidities I may be doing.</div>

<div><div><br></div>-- <br>Marcelo Zabani<br>
</div>
<br>_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
<br></blockquote></div>