BOLT.NET 学习笔记(一) 开篇 用.net winform 快速开发 炫酷的界面

bolt 基本介绍

Bolt界面引擎是迅雷公司从2009年开始开发的第四代界面库。迅雷7是首个采用该引擎成功开发的产品,目前迅雷旗下大部分客户端产品都基于该引擎开发,并稳定运行于超过3.5亿台PC上。

BOLT.NET开源项目

介绍

从2012年11月开始,千寻动漫(http://manhuahe.net)团队开始开发千寻漫画盒2.0版本,我们选择了迅雷的BOLT界面引擎开发新版界面。由于我们项目一开始主要使用.NET平台上的C#语言开发,所以直接选择了在.NET平台上使用BOLT引擎开发新版界面。迅雷BOLT SDK里有一个简单版本的dotNetBoltDemo,我们从这个简单的例子出发,在开发过程中按需封装和改进,逐渐形成了比较稳定的一个封装类库。考虑到很多开发者同样需要使用.NET平台开发BOLT界面,本着分享和避免重复发明轮子的精神,我们将BOLT.NET类库项目开源出来,希望大家一起改进它,以提供一个在.NET平台上使用简单、稳定高效、接口优雅的BOLT封装,为在.NET上通过BOLT开发产品界面提供有品质的保证。

源码

BOLT.NET 项目源代码托管在http://boltdotnet.codeplex.com/上,使用Git做版本管理。
Git clone地址:https://git01.codeplex.com/boltdotnet
源码项目工程使用visual studio 2010构建
项目使用BSD开源协议

主要技术

使用.NET平台调用技术(P/Invoke)调用XLUE.dll导出的API注册类和对象给BOLT的Lua环境。
使用Attribute简化类和对象的注册。
使用扩展方法简化Lua 栈元素的读取。
使用泛型类以及扩展方法将Lua的function转成C#的Action和Func,简化代码。
简化UI线程的消息循环,并提供跨线程Invoke方法,让跨线程调用BOLT界面更加方便和友好。
在P/Invoke BOLT的API时,通过UTF8Marshal属性自动对BOLT环境的UTF8字符与.NET环境的UCS编码做转换。

使用说明

下载并安装Git for Windows (http://msysgit.github.io/)
打开Git Bash 命令行界面
使用git命令将源码克隆到本地: git clone https://git01.codeplex.com/boltdotnet
打开HelloBolt.NET.sln解决方案,编译并运行项目。

共有两个工程:
ComicDown.UI.Core,是BOLT的.NET封装的核心类库。
HelloBolt.NET,使用BOLT SDK的HelloBolt7的XAR做的DEMO,通过代码可以看到在.NET里通过ComicDown.UI.Core封装的API使用BOLT更加简单方便。

工程的输出路径:
boltdotnet\HelloBolt.NET\Bin\Debug
boltdotnet\HelloBolt.NET\Bin\Release
界面的BOLT代码:
boltdotnet\HelloBolt.NET\Bin\View

工程使用的是BOLT的dev和pr版Union版本XLUE.dll,分别位于Debug和Release目录下。请自行从迅雷BOLT官方论坛引擎发布版(http://bolt.xunlei.com/bbs/forum.php?mod=forumdisplay&fid=42)下载最新版本XLUE.dll

DEMO介绍

HelloBolt.NET项目,在Program.cs里通过XLBolt单例启动迅雷环境。Classes目录下的Application和MyClass是待注册给BOLT环境的C#类。RegisterClasses目录下的LuaApplication和LuaMyClass分别注册了Application单例对象给BOLT环境,MyClass工厂类给BOLT环境。
具体的代码和使用说明都已经在代码里面有详细注释,请直接通过上一步获取源码并阅读。

  

最新文章

  1. 源码编译安装postgresql
  2. lua c api
  3. MultiWiiWinGUI 汉化版
  4. [CareerCup] 18.7 Longest Word 最长的单词
  5. 荣品RP4412开发板摄像头驱动调用及对焦控制
  6. java 类加载顺序
  7. JDBC自动提交和批处理操作
  8. js的兼容性问题
  9. 基于visual Studio2013解决C语言竞赛题之1077大数相加
  10. Python 的类的下划线命名有什么不同?
  11. 【Android】版本的名称
  12. pandas常用函数之shift
  13. 简单贪心) Repair the Wall hdu2124
  14. 171. Excel Sheet Column Number (Math)
  15. POJ1742Coins(多重背包)
  16. jmap -histo pid 输出的[C [B [I [S 的含义
  17. linux二进制/十六进制日志文件如何查看和编辑
  18. Kangax 的 ES7 兼容性表格
  19. Android 拍照
  20. zXing使用注意事项-转

热门文章

  1. python的disutils创建分发包
  2. 关于电机驱动扩展板 L293D 马达板Arduino
  3. Spring缓存注解@CachePut , @CacheEvict,@CacheConfig使用
  4. SpringMVC配置过程中出现的问题!
  5. Mysql 5.6 源码编译安装
  6. Dreamweaver安装与破解
  7. 使用NPM在项目中引入【lodash】
  8. 前端开发之CSS篇二
  9. shell-array
  10. Python_11-正则表达式