Duilib 开源项目安装与使用指南

打印 上一主题 下一主题

主题 907|帖子 907|积分 2721

Duilib 开源项目安装与使用指南

  duilib项目地址:https://gitcode.com/gh_mirrors/du/duilib
项目介绍

Duilib(Dream UI Library) 是一款基于 Windows API 的免费开源 DirectUI 图形界面库. 该项目由杭州月牙儿网络技术有限公司主导开辟,旨在简化图形界面计划过程,提升开辟效率。Duilib 主要特点在于其支持 XML 描述的界面结构,答应开辟者将用户界面 (UI) 和业务逻辑解耦,从而轻松地调解和维护界面。
项目特性



  • DirectUI 技术:接纳 DirectUI 技术,无需依靠系统默认的窗口类,可以直接在设备上下文 (DC) 上绘制。
  • XML 控制结构:使用 XML 文件控制界面结构和样式,便于管理和维护界面,提高机动性。
  • 高效性能表现:计划注意性能优化,纵然复杂的界面也能包管流通相应。
  • 广泛的兼容性:适用于 Windows 系统下多种范例的客户端应用程序,如 IM 软件、音视频播放器、浏览器插件等。
  • 活泼的社区支持:拥有一个充满活力的开辟者社区,提供各种功能增强和 bug 修复。
项目快速启动

1. 获取源码

起首,确保你的系统已经安装了 Git 或类似版本控制系统。然后,在下令行执行以下操纵克隆 Duilib 仓库:
  1. git clone https://github.com/duilib/duilib.git
  2. cd duilib
复制代码
2. 编译源码

Duilib 提供了 Visual Studio 解决方案文件 (Duilib.sln),这使得在 Microsoft Visual Studio 中编译变得轻易。


  • 打开 Duilib.sln
  • 更改设置和平台为所需的设置,例如 Release 和 x64
  • 如果遇到任何错误,检查是否精确安装了全部须要的组件,好比最新的 Visual Studio SDK
  • 最后,点击“Build Solution”进行编译
示例设置

  1. // 示例代码,展示如何继承 WindowImplBase 类创建杜依库 UI
  2. #include <UICore.h>
  3. class MyMainWnd : public DuiLib::CWinUIWindowImpl<MyMainWnd>
  4. {
  5. public:
  6.     DECLARE_WND_CLASS(NULL)
  7.     BEGIN_MSG_MAP(MyMainWnd)
  8.         MESSAGE_HANDLER(WM_DESTROY, OnDestroy)
  9.     END_MSG_MAP()
  10. protected:
  11.     // 窗口销毁事件处理器
  12.     LRESULT OnDestroy(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/)
  13.     {
  14.         PostQuitMessage(0);
  15.         return 0;
  16.     }
  17. };
  18. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  19. {
  20.     return CallWindowProc(g_pMainWnd->m_hWndProc, hWnd, message, wParam, lParam);
  21. }
  22. int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR /*lpCmdLine*/, int nShowCmd)
  23. {
  24.     CoInitialize(NULL);  // COM 初始话
  25.    
  26.     // 创建主窗口
  27.     MyMainWnd wnd;
  28.     if (!wnd.CreateEx())
  29.         return -1;
  30.     wnd.ShowWindow(nShowCmd);
  31.     MSG msg = {0};
  32.     while (GetMessage(&msg, NULL, 0, 0))
  33.     {
  34.         TranslateMessage(&msg);
  35.         DispatchMessage(&msg);
  36.     }
  37.     CoUninitialize();
  38.    
  39.     return static_cast<int>(msg.wParam);
  40. }
复制代码
3. 设置环境

确保包含精确的头文件和库连接。对于静态链接,需参加 -UILIB_STATIC 宏;对于动态链接,则需将编译好的 DLL 放入适当的目录。
应用案例和最佳实践

Duilib 已被多个知名产物采取,诸如百度杀毒、微信 PC 客户端、爱奇艺、网易云音乐等。这些都是在差别行业范畴内充分运用杜依库的例子,证实了其强大的适应能力和实用性。


  • 百度杀毒: 实现了高度定制化的安全软件界面。
  • 微信 PC 客户端: 计划了简便而友好的即时通讯界面。
  • 爱奇艺: 提供了丰富多媒体元素的娱乐软件界面体验。
  • 网易云音乐: 结合了美观与实用性的音乐播放器界面。
最佳实践发起



  • 详细阅读官方文档,理解 XML 设置文件的语法和标签寄义。
  • 使用版本控制管理你的项目,便于跟踪变更。
  • 在测试阶段关注界面性能,避免不须要的重绘操纵。
  • 积极参与社区讨论,实时跟进最新的功能更新和bug修复。
典型生态项目

除了核心 Duilib 库之外,另有几个围绕它的衍生项目值得关注:

  • Duilib_Ultimate: 一个增强版的 Duilib 库,提供了更多的功能、更高的稳定性和更完善的文档。

    • GitHub 地址: https://github.com/qdtroy/DuiLib_Ultimate

  • TIMSDK: 腾讯云即时通讯 Demo 中集成的杜依库修改版。

    • GitHub 地址: https://github.com/TencentCloud/TIMSDK/tree/master/Windows/Demo/Basic/duilib

  • NIM_Duilib_Framework: 网易云信基于 Duilib 的框架。

    • GitHub 地址: https://github.com/netease-im/NIM_Duilib_Framework/tree/master/duilib

以上项目通常比原生 Duilib 库包含更多特性和优化,适合那些寻求高级特性和完善解决方案的开辟者。

以上就是关于 Duilib 的全面介绍和快速启动指南,希望帮助你在开辟过程中取得更大的成就!
如果你有任何疑问或发现上述信息不准确之处,欢迎随时提问!
  duilib项目地址:https://gitcode.com/gh_mirrors/du/duilib

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

卖不甜枣

金牌会员
这个人很懒什么都没写!

标签云

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