前面已经知道怎么样把C#的源码通过MCS编译器生成exe的文件,然后我们还把 exe的文件进行反汇编查看,知道我们需要处理的目标,就是这些汇编的代码。接着下来,我们就将要来探究mono是怎么样去运行这些代码的。
一般来说,要运行这些代码,要经历几个阶段:建立垃圾回收内存管理,JIT编译引擎,IL字节码解析与翻译、封装、继承、重载及MetaData等数据处理。
继续来分析前面C语言的嵌入式的例子,先从入口点的代码开始:
main (void) {
#endifMonoDomain *domain;int argc = 2;char *argv[] = {(char*)"test-mono-embed.exe",(char*)"test-embed.exe",NULL};const char *file;int retval;file = argv [1];