[Mono-dev] Registering internal calls at runtime

Robert Jordan robertj at gmx.net
Mon Jul 12 17:35:52 EDT 2010


On 12.07.2010 21:43, MBoisse wrote:
>
> Has there been any improvements regarding late registrations of internal
> methods at runtime using "mono_add_internal_call"?
>
> Would it make sense to load and register C functions in a dll from managed
> code, and only then have the assembly referring to them loaded?
>
> There are many scenarios in which the C functions we need to make calls to
> aren't known at compile time of the embedding unmanaged code (ie mono.exe)
> and therefore registrations can't be made before the call to mono_jit_exec
> is made. However, most often the functions are known at the managed code
> compile time.
>
> Is P/Invoke still our only option?

You could add an internal call that adds internal calls ;) Problem solved.

Or resort to an internal p/invoke from the runtime itself:

[DllImport("__Internal")
static extern void mono_add_internal_call(string desc, IntPtr ftnptr);

Robert



More information about the Mono-devel-list mailing list