Primus gradus

et cognoscetis veritatem et veritas liberabit vos. 

--Johannes 8:32

Introduction

  Duilib是翁淼青于2010年推出基于Win32平台——基于GDI的开源GUI库。目前(2017年)遵循MIT协议发布,参见:

  https://github.com/duilib/duilib/blob/master/LICENSE

  (但版权说明中谈到该项目遵循BSD协议发布,参见:https://github.com/duilib/duilib/blob/master/版权说明.txt)

  Duilib具有轻量级特性,属于GUI库,不属于工具集,兼容MFC。界面设计可采用XML方式代替传统的代码书写方式。Duilib于2014年代码迁移至Github,项目地址:

  https://github.com/duilib/duilib

  获取方式不予赘述,下面介绍环境搭建。

Development enviroment setup

  大约于2016年初,Duilib采用VisualStudio 2013编写并发布源码,而笔者仍使用Visual Studio2010(VisualStudio下载地址:https://www.visualstudio.com),所以需先配置DuiLib.vcxproj等项目配置相关文件,其中细节笔者不做讨论。以下示例以vs2010为准,版本高至vs2015皆与之类似,低版本未经测试。

  下载好项目以满足版本要求的VisualStudio打开打开,卸载demos中各示例程序,在Debug模式下编译。编译生成lib文件与.dll文件。lib与.dll的文件名存在如下变化:

  • Unicode字符集

    • Debug配置:Lib\Duilib_ud.lib
    • Release配置:Lib\Duilib_u.lib
  • 多字节字符集
    • Debug配置:Lib\Duilib_d.lib
    • Release配置:Lib\Duilib.lib

  生成动态链接库(.dll)文件命名规则与lib文件相同,Unicode字符集后缀在.dll之前加“_u.dll”,Debug模式在.dll之前加“d”或“_d”。采用何种字符集根据项目需要确定。

修改对VS2010的支持【可选】

  当前Duilib支持VS2013开发环境,若要支持VS2010需要手动对项目文件进行修改。

  打开DuiLib_Static.vcxproj和DuiLib.vcxproj两个项目文件,替换其中所有v110为v100。

  为避免修改过于繁琐,删除或卸载(Unload)项目当中所有示例(Demo)程序,仅保留DuiLib项目。删除<directory>\duilib-master\bin和<directory>\duilib-master\lib目录下所有文件。

生成动态和静态库文件

  按Debug/Release/Unicode Debug/Unicode Release四个编译选项编译项目。将<directory>\duilib-master\bin和<directory>\duilib-master\lib下所生成的动态、静态链接库保存起来以备使用。

新建项目

  新建Win32项目,并添加DuiLib项目到当前解决方案集。项目名自拟。

  

  将上一步生成的.dll和.lib文件复制到主程序文件夹下,并通过在主程序解决方案点击右键,并添加现有项目(Existing Item)添加到程序中。

  将添加的项目整理到程序文件夹Duilib.libs下【可选】

  

  至此,程序基本文件结构搭建完成。

  

Duilib第一步(I)-简介与环境搭建的更多相关文章

  1. 简介及环境搭建跑通Hello

    简介及环境搭建跑通Hello Spring Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.是为了解决企业应用程序开 ...

  2. Redis入门很简单之一【简介与环境搭建】

    Redis入门很简单之一[简介与环境搭建] 博客分类: NoSQL/Redis/MongoDB redisnosqlmemcached缓存中间件  [Redis简介] <一>. NoSQL ...

  3. 一、springBoot简介与环境搭建

    前言:学习计划 1.springBoot环境搭建 2.springBoot入门 3.srpingBoot整合Mybatis 4.springBoot整合Redis,Redis集群 5.springBo ...

  4. NetCore第一步:千里之行 始于环境构筑

    今年的6月28号,微软发布了一个正式版本 NetCore.发布的同时,也同时发布了CoreStudio. 这个激动人心的时刻,让跨平台已经不再是什么神话. 让我们一起来开始Core的开发之旅吧. 万事 ...

  5. Spring ——简介及环境搭建跑通Hello

    Spring Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.是为了解决企业应用程序开发复杂性而创建的.框架的主要优 ...

  6. go语言之行--简介与环境搭建

    一.Go简介 Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后 ...

  7. Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse

    框架学习前言 这个模块是面向Spring的,Spring的学习我是这么想的: 1.简单介绍Spring,主要是从网上借鉴一些重点 2.尽量说明清楚Spring的使用方法以及细节点 3.尽量以自己的理解 ...

  8. 1.SpringMVC的简介和环境搭建

    SpringMVC的简介: SpringMVC 和 Struts一样是一个MVC框架,和Spring无缝连接,和struts2类似, Spring MVC属于SpringFrameWork的后续产品, ...

  9. Java学习第一步: Win7配置JDK环境

    转摘"专注JavaWeb开发":http://www.javaweb1024.com/java/Javajichu/2015/03/02/353.html 下载JDK并安装到本机  ...

随机推荐

  1. SpringMVC之GET请求参数中文乱码

    server.xml 文件中的编码过滤器设置是针对POST请求的,tomacat对GET和POST请求处理方式是不同的,要处理针对GET请求的编码问题,则需要改tomcat,conf目录下的serve ...

  2. 捕获arm托管磁盘虚拟机,并进行还原

    背景:托管磁盘虚拟机"hlmma69n2",附加了一块100GB的数据磁盘.可以通过Portal管理界面直接捕获该虚拟机并进行还原,详情见如下步骤: 1.在虚拟机内部执行一般化的操 ...

  3. CSS深入理解学习笔记之relative

    1.relative和absolute的相煎关系 限制作用:①限制left/top/right/bottom定位:②限制z-index层级:③限制在overflow下的嚣张气焰. relative和f ...

  4. lambda高级进阶--延迟执行

    前面的整理我们也已经说到了,使用lambda表达式的主要原因是,将代码的执行延迟到一个合适的时间点.在使用lambda表达式的时候务必记住一点就是说lambda表达式都是延迟执行的. 延迟执行代码的原 ...

  5. linkin大话设计模式--抽象工厂

    linkin大话设计模式--抽象工厂 在前面讲到的简单工厂里面虽然实现了我们那个类和其中的依赖的解耦,但是在产生我们需要的依赖的那个工厂里面还是和具体的产品类耦合了  现在要是还想彻底解耦的话怎么办呢 ...

  6. 腾讯工程师教你玩转 RocksDB

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯云数据库内核团队 原文标题:[腾讯云CDB]教你玩转MyRocks/RocksDB-STATISTICS与后台线程篇 0. Intro ...

  7. IO (三)

    1 转换流 1.1 InputStreamReader 1.1.1 InputStreamReader简介 InputStreamReader是字节流通向字符流的桥梁.它使用指定的charset读取字 ...

  8. AM调制的FPGA实现

    一.说明: 功能:AM调制 平台:Vivado 2016.4 和 Matlab R2017a 二.原理: 1. AM调制原理 AM已调信号的时域表达式: 已调信号的频域表达式: 本质上AM调制就是频谱 ...

  9. shell第三篇

    第三篇本文摘自鸟哥的私房菜:http://cn.linux.vbird.org/linux_basic/0105computers.php#program(当年看的时候浮光掠影,现在回头发现,经典就是 ...

  10. 锐捷配置telnet

    .组网需求 通过Telnet功能远程登录管理设备.   二.组网拓扑   三.配置要点 1.需要给交换机配置一个管理IP,如果PC与交换机不是同一个网段,需要给交换机配置一个默认网关 2.需要配置一个 ...