UILite是一款继承自WTL以及和界面无关的功能库的合集,能够生成很小的可执行文件。如果你也象我一样希望自己的程序又小又快的话,UILite就是你的选择。当然,我们还要克服一些障碍:
1) ATL/WTL样式的模板类初看起来有点怪异
2) 没有类向导的支持,所以要手工处理所有的消息映射。
3) MSDN没有正式的文档支持,你现在看到的就是UILite的最权威的文档
4) 买不到参考书籍
5) 没有微软的官方支持, 因为这是我写的库
6) ATL/WTL的窗口与MFC的窗口有很大的不同,你所了解的有关MFC的知识并不全部适用与WTL。 UILite的界面部分基于WTL的。
从另一方面讲,UILite 也有它自身的优势:
1) 不需要学习或掌握复杂的文档/视图框架。
2) 具有WINDOWS的基本的界面特色,支持大部分WINDOWS或者MFC的窗口控件
3) 增强了一些WINDOWS/MFC的特性,比如对浏览器的支持,WEBBrowser支持了JS的调用和回调,方便编写和网页有互动的程序。
4) 可生成较小的可执行文件,得益于设计优良的WTL。
5) 你可以修正自己使用的UILite 中的错误(BUG)而不会影响其他的应用程序,因为UILite的界面部分全是用模版实现的,所以你看到的是所有的源码
6)DirectUI支持,DirectUI是指无窗口UI自绘界面,即界面上所有的控件都不是窗口,而是直接绘制出来的,UILite支持基于XML配置的动态DirectUI界面编程,这里实现了业务和界面分离,界面实现了布局和资源分离,资源实现了语言资源和非语言资源分离,对于开发者来说,这些资源的管理都不用关心,这些UILite都已经做好了,窗口部分实现了DirectUI和标准WINDOWS窗口混合使用,也就是开发这可以在DirectUI窗口中包含标准Windows窗口,听起来很神奇是吧,这些UILite也帮你做好了。
7)丰富的字符串处理,查找、替换、hash、字符集转换、反向字符串操作、内存字符串操作、字符串和数据(int,,long,double\rect,font,color)等等的无缝转换
8) 加密解密,支持绝大部分加密解密操作
9)压缩解压
10)URL操作,支持大部分网络协议(HTTP/FTP)等
11)SOCKET网络、UILite使用模版技术实现了网络的高度的可定制和高性能要求。
12)Event事件模型,UILite使用模版技术加上智能指针技术实现了数据的事件驱动模型,有效的解决了数据业务模块的高效智能通讯问题,实现了模块间的高内聚。
13)内存池\、对象池,解决了内存碎片问题
14)线程/线程池,让开发者不用再关心线程的强杀导致的种种问题,智能线程分配技术,有效的节省了系统线程开销。
15)轻量级的HTTP服务器支持
16)) XML支持,作者设计的XML解析器,是世界上解析最快的XML解析器,同时支持宽字符和窄字符两种字符,支持直接内存解析,支持大部分格式的XML文档,UILite的DirectUI就是基于Markup的XML解析器。
17) INI格式文件的解析支持,命令行解析的支持等
18)文件操作的封装,支持File、TextFile、MemoryFile、IndexFile等
19)辅助的统计相关支持,调试、日志、时间统计等。
20)时间的封装
21)进程间的通讯等
22) 数据库支持,支持各种数据库的访问,以及内嵌到程序的SQLite的封装
23) 脚本的支持,UILite支持UI的脚本交互,也可以支持非UI程序的脚本交互,支持javascript/vbs等脚本交互
24) 最低支持VC6及以上版本,非界面库支持跨平台实现。
在接下来的文章中,我将介绍UILite的各个方面,先从UI部分介绍。
这里贴出使用UILite的案例: