zoukankan      html  css  js  c++  java
  • 金山卫士界面库——了解篇

    最近一周了解了一下金山卫士开源库中的界面部分。

    因为感兴趣的只是界面的部分,所以始终没下完整的代码,而是直接采用前人已经分离的库。

    目的是使用的这套库做开发,所以目前没有对库本身的实现做很多了解,只是使用。

    所有资料均也可以在金山开源论坛找到。地址是 bbs.code.ijinshan.com

    概况,目前分离的界面库主要有

    openkui,好像也叫kui,是由开源代码中CKuiXXX系列的界面库整理而成

    bkwin,是由开源代码中CBkXXX系列的界面库,或者是部分,或者只是一个称呼,(有多个包叫bkWin,但内容又不相同)

    bkuilib,也是开源代码中CBkXXX系列的界面库整理而成

    后面的过程就是通过运行演示程序,初步体会使用界面库

     本人在此之前从未接触过WTL,一直在用MFC,开始也走了些弯路

    开发环境是XP + VS2008Pro

    结论及分析

    有人说bkwin比kui新,也有人说只是两个体系,目前尚无定论,我更倾向于后者。

    -----------------------------------------------------------

    openkui,最先拿到的就是openkui,可以通过对照维护者blog上的说明进行生成

    但需要注意的是,

    1,网上有多个资源,有些可能是旧版,需要做的工作较多,最好从googlecode的svn下载最新的。

    2,没有编译kscbase.vcproj的sln,自己生成一个或者把kscbase.vcproj加入kui.sln中;

    3,debug配置是完整的,而release配置是不同的(引用路径等),如果发现一个能生成另一个不能,请参考1;

    好处:

    1,引用比较简单,只需直接引用kuilib.h头即可,有做成单独库的潜质。

    2,有CKuiApp等,使用起来有点像MFC

    3,界面资源使用zip打包,可以比较好的进行控制

    4,工程中直接添加了wtl,tinyxml,zlib等第三方库,方便环境配置和管理

    5,有一个界面编辑器,尽管是Alpha的,免费不开源的,但目前是唯一的有这个的

    不足:

    1,工程目录结构复杂,文件分散,有改进的余地。

    2,头文件中很多处直接使用了3级以上的目录结构,感觉会有隐患;

    3,tinyxml的cpp重复包含导致很多警告,zlib的警告,全局g_hInstance等等。

    4,讲解资源偏少,这个对0基础的人很麻烦

    ================================================

    bkwin,是论坛中讲解教程的中的文档,边听讲解边操作,很容易程序就通了。

    但要注意的是:

    教程中提到修改myApp.rc中的#include "atlres.h"为#include "wtl/atlres.h",避免找不到altres.h,

    但这样修改存在一个问题就是,一旦通过vs修改rc文件,则vs会将此处复原,所以建议增加wtl目录为工程附加包含目录

    论坛上还有一个文字版的入门,内容是不完整的,缺少了如何添加bkres部分资源等关键问题,做出来的界面是白茫茫的,即bkwin界面未显示

    好处:

    1,简单容易上手快,研究的人相对较多,

    2,资源使用的文件,方便

    缺点:

    1,没有图形界面的设计器,需要自己写xml

    2,教程中都需要配置开发环境,WTL和tinyxml等,不过经过简单改变,也可以将其集成到工程中

    3,有多个包,但版本不同,有些乱。

    ----------------------------------------------------------------------------

    bkuilib,是经过整理的bkwin,结构比较清爽

    但要注意的是:

    需要配置WTL,tinyxml环境,其中WTL的配置是常规配置

    tinyxml比较特殊,首先是采用lib形式引入,可以自行改成源码形式;另外就是tinyxml版本要求在2.6.1以上,同时衍生一个问题bkwin的版本

    不知道是不是维护者自行修改的。

    好处:

    1,代码目录结构清晰,

    2,和bkwin基本一致,

    缺点:

    1,如果其中有自行修改的部分,随着bkwin升级,是否可能有隐患;

    2,同样没有界面设计器

    3,和bkwin比,有部分增加的代码,情况还不了解

    4,项目配置中的tinyxml和wtl的配置有改进余地

  • 相关阅读:
    牛客练习赛24 E:青蛙(最短路)
    菜根谭#10
    菜根谭#9
    菜根谭#8
    菜根谭#7
    菜根谭#6
    菜根谭#5
    菜根谭#4
    菜根谭#3
    菜根谭#2
  • 原文地址:https://www.cnblogs.com/kevinzhwl/p/2174924.html
Copyright © 2011-2022 走看看