Hello I&#39;ve tried the dynamic loading of mono and I havn&#39;t had any success.<br><br>I&#39;ve written an example to test it out, this example is tested on Ubuntu 10.04 (with GCC 4.3, Mono 2.6.7), Debian 6 (with GCC 4.4, GCC4.6, Mono 2.6.7, Mono 2.10.1), Arch Linux (with GCC 4.6, Mono 2.10.2) and no success. I&#39;ve tried loading libmono directly with dlload, dlloading mono via a dlloaded library and as in the example below.<br>
<br>//Makefile<br>all: main.cpp mymono.c<br>    gcc -shared -fPIC -Wl,-soname,libmymono.so `pkg-config --cflags --libs mono-2` -o libmymono.so mymono.c<br>    g++ -ldl main.cpp -o app<br><br>//mymono.c<br>#include &lt;mono/jit/jit.h&gt;<br>
<br>MonoDomain* domain;<br><br>void init(void)<br>{<br>    printf(&quot;Init called\n&quot;);<br>    domain = mono_jit_init(&quot;libmymono.so&quot;);<br>}<br><br>//main.cpp<br>#include &lt;stdio.h&gt;
<br>#include &lt;dlfcn.h&gt;
<br> <br>int loadUnloadMonoLibrary()
<br>{
<br>    void* mono_library;
<br> <br>    mono_library = dlopen(&quot;./libmymono.so&quot;, RTLD_NOW);
<br>    if(mono_library == NULL) {
<br>        return 1;
<br>    }
<br>     <br>    void* initializer = dlsym(mono_library, &quot;init&quot;);
<br>    if(initializer == NULL) {
<br>        return 2;
<br>    }
<br>     <br>    typedef void (*mono_init_function_type)(void);
<br>    union
<br>    {
<br>        mono_init_function_type func;
<br>        void * obj;
<br>    } alias;
<br>    alias.obj = initializer;
<br>    mono_init_function_type init_func = alias.func;
<br>     <br>    init_func();
<br>     <br>    dlclose(mono_library);
<br>     <br>    return 0;
<br>}
<br> <br>int main()
<br>{
<br>    int i = loadUnloadMonoLibrary();
<br>    int j = loadUnloadMonoLibrary();
<br>    printf(&quot;Status %i %i\n&quot;, i, j);
<br>    return j;
<br>}<br><br>Thanks!<br><br><div class="gmail_quote">2011/5/16 Martin Arvidssson <span dir="ltr">&lt;<a href="/user/SendEmail.jtp?type=node&node=3537932&i=0" target="_top" rel="nofollow" link="external">[hidden email]</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<p>Thanks, I will try the dynamic loading. Global variables are gone after my driver is restarted from the host application.</p>
</blockquote></div><br>

        
<br/><hr align="left" width="300" />
View this message in context: <a href="http://mono.1490590.n4.nabble.com/Embedding-Mono-multiple-calls-to-mono-jit-init-tp3519842p3537932.html">Re: Embedding Mono: multiple calls to mono_jit_init</a><br/>
Sent from the <a href="http://mono.1490590.n4.nabble.com/Mono-Dev-f1517221.html">Mono - Dev mailing list archive</a> at Nabble.com.<br/>