<br><br><div class="gmail_quote">On Thu, Jul 7, 2011 at 5:34 PM, Jonathan Pryor <span dir="ltr">&lt;<a href="mailto:jonpryor@vt.edu">jonpryor@vt.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">On Jul 7, 2011, at 11:55 AM, arkain wrote:<br>
&gt; I understand the reasons why the developers chose to leave out support for<br>
&gt; developing mixed-mode assemblies using mono: the lack of cross-platform<br>
&gt; compatibility in such assemblies. However, I would argue that such things<br>
&gt; are not a consideration for those who would choose to develop such<br>
&gt; assemblies.<br>
<br>
</div>Mono supports mixed mode assemblies on Windows:<br>
<br>
        <a href="http://www.mono-project.com/CPlusPlus" target="_blank">http://www.mono-project.com/CPlusPlus</a><br>
<br>
        &quot;Mixed-mode assemblies are experimentally supported only on Windows...&quot;<br>
<br>
Mono can&#39;t support mixed-mode assemblies on any other platform, for a simple reason: in order for a mixed-mode assembly to be really useful, it needs to be loadable as a native library on the platform. This works on Windows because assemblies are PE/COFF files, and Windows dynamic link libraries are PE/COFF, so everything Just Works.<br>

<br>
But try using dlopen(3) on Linux to load an assembly, and dlopen(3) will (rightfully) fail -- Linux wants ELF, not PE. There&#39;s a rather fundamental file format difference here.<br><br></blockquote><div><br></div><div>
Well, the fix here is quite straight forward - just implement a PE/COFF loader for non windows platforms. Now on how hard is to do it I&#39;ll leave the answer to the ones entertaining the idea of doing it.</div><div><br>
</div><div> </div></div><br>