NIM_Duilib – 使用Visual Studio编译NIM_Duilib
在NIM_Duilib刚刚开始开源的时候我就注意到了这个项目,因为一直在用Duilib,并且对DirectUI这种方式很认同,加上NIM_Duilib仓库的控件截图相比于Duilib要美化不少,所以当时马上就克隆了NIM_Duilib的仓库进行了编译,不过当时出现了很多的编译问题,加上当时有项目在手上需要赶进度,所以马上就弃坑了,今天刚刚好有时间那就重新开始认识NIM_Duilib吧。
1 NIM_Duilib是什么?
Duilib是windows平台下的一款轻量级directUI开源库(遵循BSD协议),完全免费,可用于商业软件开发,只需在软件包里附上协议文件即可。Duilib可以简单方便地实现大多数界面需求,包括换肤、换色,透明等功能,支持多种图片格式,使用XML可以方便地定制窗口,能较好地做到UI和逻辑相分离,尽量减少在代码里创建UI控件。目前,Duilib库已经渐趋稳定,目前在国内有较为广泛的使用,网络上也有很多的使用教程。
Duilib是网易在研发易信PC版时被引入,历经六七年的研发过程,相对于原版Duilib,网易云信Duilib修复了一些问题和不足,包括但不限于控件种类不丰富、不支持动画、不支持半透明异形窗体、对多线程支持不好等,目前,网易云信Duilib配合比较高效的引擎库Base解决多线程问题,可以做出功能更强更稳定的客户端界面。NIM Duilib 包含了一整套桌面软件的开发部件,与其说这是一个界面库,不如说它是一个开发框架。从原有 Duilib 基础上拓展了一些新的能力,并整合了 Google base 基础类库(线程、内存、闭包等)。
github地址:https://github.com/netease-im/NIM_Duilib_Framework
2 在Visual Studio 2019中编译NIM_Duilib
2.1 克隆仓库并切换到develop分支
使用以下命令克隆仓库
git clone https://github.com/netease-im/NIM_Duilib_Framework.git
这里需要注意的是我们需要将仓库切换到develop分支,原本的master分支在编译libcef_dll_wrapper
项目时会出现以下错误
error: C2039 "_Ref_count_obj": 不是 "std" 的成员
参考这个issue:https://github.com/netease-im/NIM_Duilib_Framework/issues/363
2.2 编译项目
切换分支之后,进入仓库根目录下的example文件夹,使用Visual Studio 2019打开example.sln项目文件
然后依次修改base、duilib、ui_components、以及third_party下的libcef_dll_wrapper项目的属性。
在配置属性-常规中的平台工具集修改为Visual Studio 2019 (v142),Windows SDK版本选择本机上安装的SDK版本即可。
修改完成之后编译即可。
2.3 编译输出
各个项目编译完成之后,可以在仓库根目录下的libs文件夹找到所编译的静态库。
- 32位静态库输出目录为libs
- 64位静态库输出目录为libs/x64。
- Debug静态库为:base_d.lib、duilib_d.lib、libcef_dll_wrapper_d.lib、ui_components_d.lib
- Release静态库为:base.lib、duilib.lib、libcef_dll_wrapper.lib、ui_components.lib
后面我们配置NIM_Duilib新项目是需要引入这些静态库。
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:NIM_Duilib – 使用Visual Studio编译NIM_Duilib
原文链接:https://www.stubbornhuang.com/2994/
发布于:2024年02月21日 13:57:12
修改于:2024年02月22日 13:25:23
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
50