[Mono-dev] Embedding Mono: multiple calls to mono_jit_init
MartinAlexander
martin.arvidsson at gmail.com
Fri May 20 04:18:26 EDT 2011
Hello I've tried the dynamic loading of mono and I havn't had any success.
I'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've tried loading libmono directly with dlload, dlloading mono via a
dlloaded library and as in the example below.
//Makefile
all: main.cpp mymono.c
gcc -shared -fPIC -Wl,-soname,libmymono.so `pkg-config --cflags --libs
mono-2` -o libmymono.so mymono.c
g++ -ldl main.cpp -o app
//mymono.c
#include <mono/jit/jit.h>
MonoDomain* domain;
void init(void)
{
printf("Init called\n");
domain = mono_jit_init("libmymono.so");
}
//main.cpp
#include <stdio.h>
#include <dlfcn.h>
int loadUnloadMonoLibrary()
{
void* mono_library;
mono_library = dlopen("./libmymono.so", RTLD_NOW);
if(mono_library == NULL) {
return 1;
}
void* initializer = dlsym(mono_library, "init");
if(initializer == NULL) {
return 2;
}
typedef void (*mono_init_function_type)(void);
union
{
mono_init_function_type func;
void * obj;
} alias;
alias.obj = initializer;
mono_init_function_type init_func = alias.func;
init_func();
dlclose(mono_library);
return 0;
}
int main()
{
int i = loadUnloadMonoLibrary();
int j = loadUnloadMonoLibrary();
printf("Status %i %i\n", i, j);
return j;
}
Thanks!
2011/5/16 Martin Arvidssson <martin.arvidsson at gmail.com>
> Thanks, I will try the dynamic loading. Global variables are gone after my
> driver is restarted from the host application.
>
--
View this message in context: http://mono.1490590.n4.nabble.com/Embedding-Mono-multiple-calls-to-mono-jit-init-tp3519842p3537932.html
Sent from the Mono - Dev mailing list archive at Nabble.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20110520/44d7b3a4/attachment.html
More information about the Mono-devel-list
mailing list