Bolt界面引擎官方论坛

 找回密码
 立即注册
搜索
查看: 2552|回复: 1

菜鸟初次接触BOLT有很多不了解的地方望高手解答下

[复制链接]
发表于 2013-11-28 13:16:09 | 显示全部楼层 |阅读模式
菜鸟初次接触BOLT有很多不了解的地方望高手解答下

1、如果使用.NET进行开发,那么迅雷UI引擎的宿主究竟是.NET还是C++。换句话说,在.LUa文件中的代码执行效率,是随.NET的执行效率还是C++,又或者是LUA本身?他的执行效率与C#和C++之间相比是多高?
2、使用BOLT引擎是不是有着很优越的平台移植性?换句话说,如果我现在使用基于.NET+BOLT开发的一个应用。在未来我想在UI层不修改的情况下,将业务逻辑换成C++。在目前来看是否具备可行性?大概要通过什么方式来实现?


发表于 2013-11-28 16:19:52 | 显示全部楼层
1、BOLT+.NET的场景下,界面本身的代码执行是XLUE.dll负责的,这部分是C++和Lua部分(对于.NET来说都是非托管代码以及非托管内存)。但是会Lua里面肯定会用到.NET注册给Lua的类和对象,Lua调用这些注册的对象时,会进入.NET的范围(.NET托管代码和托管内存)。所以你要分清楚代码的内存边界。有个比喻:就像你的C++代码调用Win32内核API,内存会从用户态进入内核态;Lua调用了.NET注册的API,内存就从Lua的部分进入了.NET的托管内存部分。

实际上有三块内存:XLUE本身的C++部分(非垃圾回收,非托管),Lua的部分(也是基于垃圾回收的),.NET的部分(托管)。

2、从.NET切换到C++,xml、lua代码都不需要改,只要C++重新注册API给Lua就可以。宿主代码当然得从C#改成C++。

小黑屋|手机版|迅雷Bolt界面引擎开发者社区 ( 10240715

GMT+8, 2017-8-20 10:07 , Processed in 0.064276 second(s), 18 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表