[Mono-list] interesting discussion regarding managed dynamic libraries

Jonathan Pryor jonpryor@vt.edu
Thu, 16 Dec 2004 06:46:07 -0500

On Thu, 2004-12-16 at 09:50 +0200, Pieter Breed wrote:
> The idea is this:  If you write a managed (hereafter .net for brevity)
> class library could you not "export" certain annotated static methods
> in such a way the a normal C-style application could use those
> functions?

This is already supported at the IL level.  Google for "Inverse
P/Invoke", or see:


As Ian MacLean already mentioned, this solution isn't portable as it
requires that the native OS linker use PE libraries.

It's also not well supported by most managed languages (C#, VB.NET), as
most do not support global functions and no attributes exist to mark a
static member as a global export.

In short, it can/could be done, but (1) it's not portable; and (2) there
are existing solutions permitting unmanaged code to invoke managed code
(COM Interop and delegate callbacks); and (3) it's not in Microsoft's
long term interests to make it possible.  WinFX is the future, and there
is no unmanaged code there. :-)

 - Jon