- 博客(5)
- 收藏
- 关注
原创 mono嵌入式应用研究(四):Assemly的加载与执行
c#的Assemly一般有exe和dll两种文件后缀,其实都差不多,通过mono_domain_assembly_open这个API将Assemly加载进来,加载的时候如果给定的路径不能直接加载,会通过设置好的Assemly查找路径去查找。Assemly的加载需要给定一个AppDomain,加载进来后只在这个AppDomain可用。 执行的话有两种方式: 一种是使用int mono_jit_e
2016-04-05 15:02:19
4724
原创 mono嵌入式应用研究(三):注册内部函数
说到mono的嵌入式开发,最关键的要属内部函数了,mono通过扩展CIL指令集,使c#可以调用native端注册的内部函数,这个也是mono虚拟机实现的基础。 内部函数的注册使用API mono_add_internal_call,具体如下: mono_add_internal_call("DOSSystem.Logger::InternalLog(uint,string)", (void *
2016-04-05 11:34:52
2139
原创 mono嵌入式应用研究(二):虚拟机的初始化
mono本身是用ASNI C开发的,所以mono的使用也就是调用一堆API,mono使用的句柄和类型对外开放时都被隐藏了,比如MonoClass、MonoObject,对外声明的都只是空结构指针,mono的API返回的对象,类型相关的比如MonoClass、MonoClassField是跟随Assembly存在的,不需要自己释放。获得一些托管代码的对象,比如MonoObject、MonoStrin
2016-04-05 10:20:40
2831
原创 mono嵌入式应用研究(一):编译
要使用mono首先得把它编译起来,当然也可以直接使用mono官网放出的发行包。mono的编译主要分windows和linux两个平台,其他的像IOS和Android,因为我主要是用在服务器开发上,所以没去研究。 Linux下编译mono比较简单,按照官方文档提供的步骤操作就行了,要注意的是你首先要安装一个mono的runtime,主要是编译类库需要,编译mono你首先需要有个编译好的mono,真
2016-03-09 14:50:18
3531
原创 mono嵌入式应用研究
我接触mono是在2012年,当时正和一位朋友聊起他做的服务器开发框架,他在开发框架里加入了python和javascript的嵌入式支持,其实也谈起了mono这个第三方的c#虚拟机。 我自己也有维护一套服务器开发框架,是用c++开发的,主要是插件式的开发方式,应用逻辑做成插件,在容器中运行,容器负责网络通讯等底层处理,如果可以使用lua、javascript、c#等来开发逻辑插件,将可以大大降
2016-03-08 21:54:56
981
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人