zoukankan      html  css  js  c++  java
  • BOLT.NET 学习笔记(一) 开篇 用.net winform 快速开发 炫酷的界面

    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更加简单方便。

    工程的输出路径:
    boltdotnetHelloBolt.NETBinDebug
    boltdotnetHelloBolt.NETBinRelease
    界面的BOLT代码:
    boltdotnetHelloBolt.NETBinView

    工程使用的是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环境。
    具体的代码和使用说明都已经在代码里面有详细注释,请直接通过上一步获取源码并阅读。
      
  • 相关阅读:
    洛谷P3819 松江1843路
    洛谷P1896 [SCOI2005]互不侵犯King
    洛谷P1197 [JSOI2008]星球大战
    洛谷P1171 售货员的难题
    2017-10-24 NOIP模拟赛
    LibreOJ #6192. 「美团 CodeM 复赛」城市网络
    洛谷P2258 子矩阵
    Cogs 9. 中心台站建设
    Cogs 6. 线型网络
    洛谷P3138 [USACO16FEB]负载平衡Load Balancing_Silver
  • 原文地址:https://www.cnblogs.com/hpze2000/p/3386511.html
Copyright © 2011-2022 走看看