社区
ATL
帖子详情
一个ATL的COM组件里面有几个ATL简单对象,如何共享数据呢(不跨进程)?
悟迟
2013-03-18 05:31:52
一个ATL的COM组件里面有几个ATL简单对象,如何共享数据呢(不跨进程)?
...全文
78
4
打赏
收藏
一个ATL的COM组件里面有几个ATL简单对象,如何共享数据呢(不跨进程)?
一个ATL的COM组件里面有几个ATL简单对象,如何共享数据呢(不跨进程)?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
悟迟
2013-03-19
打赏
举报
回复
引用 2 楼 oyljerry 的回复:
静态全局对象等
能不能再帮我看看这个问题 http://bbs.csdn.net/topics/390389671
悟迟
2013-03-19
打赏
举报
回复
引用 1 楼 akirya 的回复:
最简单的就是全局变量了 单件什么的都行。
能不能帮我看看这个问题 http://bbs.csdn.net/topics/390389671
oyljerry
2013-03-18
打赏
举报
回复
静态全局对象等
珍惜生命远离CPP
2013-03-18
打赏
举报
回复
最简单的就是全局变量了 单件什么的都行。
深入解析
ATL
(第2版).pdf
中文名: 深入解析
ATL
(第2版) 原名:
ATL
Internals, 2nd Edition Working with
ATL
8 别名:
ATL
作者: (美)塔瓦瑞斯译者: 赖仪灵 曹雨田 资源格式: PDF 版本: 扫描版 出版社: 电子工业出版社书号: 9787121049859发行时间: 2007年11月01日 地区: 大陆 语言: 简体中文 简介: 编辑推荐
ATL
的发明人Jim Springfield亲自作序推荐。 四位顶尖的Windows编程专家倾力合作,绝对经典再现。
COM
、
ATL
开发人员的必备宝典。 深入分析
ATL
实现
COM
内幕细节,展示
COM
应用中的各类漂亮技巧。
ATL
的经典指南现已更新到
ATL
8和VisuaI Studio 2005: 四位顶尖的Windows编程专家在本书中系统地揭示了
ATL
的内部工作原理,他们解释了
ATL
是 如何工作的,以及为什么要以这样的方式工作。通过本书,客户端开发人员可以掌握
ATL
中的窗口、
COM
控件、MFC集成、Web服务代理生成等资源。服务端编程人员可以应用
ATL
的全
COM
服务器和
对象
服务、高吞吐量、高并发Web应用程序和服务的广泛支持。每个Windows开发人员都将从本书中学到强大的方法来增加应用程序的灵活性、减少负载、最大化程序的透明度和可控性。 ·通过图表、示例代码和
ATL
的内部实现代码来揭密
ATL
的内部原理。 ·遍历向导以简化在普通应用程序中的
ATL
开发。 ·掌握C++、
COM
和
ATL
中的字符串使用技巧。 ·利用
ATL
的智能类型:C
Com
Ptr、C
Com
QIPtr、C
Com
BSTR和C
Com
Variant。 ·理解并正确实现IUnknown。 ·创建能从
COM
服务器中暴露
COM
对象
的粘合代码。 ·使用Canned Interface实现来支持
对象
的永久性、
COM
集合、枚举器和连接点。 ·使用
ATL
窗口类和控件建立独立的应用程序和UI
组件
。 ·使用
ATL
Servet开发可以运行在微软IIS上的Web应用程序。 虽然.NET系统从1998年才开始其发展
进程
。但它已经使很多开发人员的编程发生了革命性的变化,并在未来几年将持续得到改进。但是,
COM
编程(和
ATL
)也依然非常有活力,对Microsoft内外的很多开发人员都非常重要。本书的第2版,与第1版一样,提供了您所需要的信息,使我们在这些技术上的投资也将获得最大的回报。 ——Jim Springfield,
ATL
发明人 虽然
ATL
比较精深,但是这本书的讲解非常通俗易懂,语言比较简练,条理非常清楚。即使在读完这本书之后,它仍然可以作为参考书指导我们的开发和学习工作。我想,这就是好书的价值所在吧。 ——潘爱民,经典畅销书《深入解析Windows操作系统,第4版》译者 内容简介 本书主要介绍了
ATL
技术的原理、内部实现和应用技巧,由当今4 位顶尖的 Windows技术专家联合撰写。全书内容丰富,深入浅出,主要涵盖了
ATL
内部架构和实现方法、运用向导简化
ATL
开发、C++/
COM
/
ATL
中字符串的使用技巧、理解并正确实现IUnknown、充分利用
ATL
提供的Smart Types、撰写能够暴露
COM
服务器上
COM
对象
的粘合代码、利用Canned Interface实现来支持
对象
持久化/
COM
群集/枚举、利用
ATL
Windows类建构独立的应用程序和UI
组件
等的技术内容。本书适合于广大Windows开发人员阅读参考,是
ATL
开发人员的必备权威参考书籍。 作者简介 Christopher Tavares,目前在微软工作,是模式与实践方面的专家。有着超过25年的编程经验,涉及的平台从Sinclair ZX-81到多CPU信号处理硬件。 目录: 第2版序 第1版序 前言 致谢 关于作者 联系博文视点 第1章 你好,
ATL
1.1 什么是
ATL
1.2 创建
COM
服务器 1.3 插入
COM
类 1.4 添加属性和方法 1.5 实现附加接口 1.6 脚本支持 1.7 添加永久性 1.8 添加和激发事件 1.9 使用窗口 1.10
COM
控件 1.11 容纳控件 1.12
ATL
Server Web项目 1.13 总结 第2章 字符串和文本 2.1 字符串
数据
类型、转换类和辅助函数 2.2 智能BSTR类C
Com
BSTR 2.3 C
Com
BSTR类 2.4 CString类 2.5 总结 第3章
ATL
智能类型 3.1 智能VARIANT类C
Com
Variant 3.2 智能SAFEARRAY类C
Com
SafeArray 3.3 智能指针类C
Com
Ptr和C
Com
QIPtr 3.4 智能指针类CAutoPtr和CAutoVectorPtr 3.5
ATL
内存管理器 3.6 总结 第4章
ATL
中的
对象
4.1 实现IUnknown 4.2
ATL
的层次 4.3 线程模型支持 4.4 IUnknow核心 4.5 我们的类 4.6 C
Com
Object以及其他 4.7
ATL
创建者 4.8 调试 4.9 总结 第5章
COM
服务器 5.1 回顾
COM
服务器 5.2
对象
映射表和C
Atl
Module类 5.3
对象
映射表 5.4
对象
映射类要求的方法 5.5 C
Atl
Module类 5.6 重游C
Com
CoClass 5.7
ATL
与C运行时库 5.8 总结 第6章 接口映射表 6.1 回顾:
COM
的实体身份 6.2 表驱动的QueryInterface 6.3 多重继承 6.4 Tear-off接口 6.5 聚合:外部控制
对象
6.6 接口映射表链 6.7 尽管说“不” 6.8 调试 6.9 扩展性 6.10 总结 第7章
ATL
中的永久性 7.1 回顾
COM
的永久性 7.2
ATL
的永久性实现类 7.3 属性映射表 7.4 永久性实现 7.5 其他永久性实现 7.6 使用永久性添加“按值列集”的语义 7.7 总结 第8章 集合和枚举器 8.1
COM
集合和枚举接口 8.2 枚举数组 8.3 枚举标准的C++集合 8.4 集合 8.5
ATL
数据
类型的标准C++集合 8.6
ATL
集合 8.7
对象
模型 8.8 总结 第9章 连接点 9.1 回顾连接点 9.2 创建基于
ATL
的可连接
对象
9.3 创建
一个
接收事件的
对象
9.4 它是怎么工作的:杂乱的实现细节 9.5 总结 第10章 窗口 10.1 Windows应用程序的结构 10.2 CWindow 10.3 CWindowImpl 10.4 CDialogImpl 10.5 Windows控件包装类 10.6 CContainedWindow 10.7 总结 第11章 ActiveX控件 11.1 回顾ActiveX控件 11.2 BullsEye控件需求 11.3 使用
ATL
向导创建初始的控件 11.4 初始的BullsEye源文件 11.5 逐步开发BullsEye控件 11.6 总结 第12章 控件包容 12.1 控件是如何被包容的 12.2 基本的控件包容 12.3 在对话框中容纳控件 12.4 复合控件 12.5 HTML控件 12.6
ATL
控件包容的限制 12.7 总结 第13章 你好,
ATL
Server:
一个
新型的C++ Web平台 13.1 微软Web平台(因特网信息服务) 13.2 可能是可以运行的最
简单
ISAPI扩展 13.3 封装ISAPI 13.4
ATL
Server 13.5
ATL
Server中的Web服务 13.6 总结 第14章
ATL
Server内幕 14.1
ATL
Server中的ISAPI实现 14.2 服务器响应文件 14.3 请求处理程序示例 14.4 输入处理 14.5 会话管理 14.6
数据
缓存 14.7 总结 附录A 实例展示C++模板 A.1 模板的必要性 A.2 模板基础 A.3 不同类型的多态 A.4 函数模板 A.5 成员函数模板 A.6 总结 附录B
ATL
头文件 附录C 移植到
ATL
8 C.1 字符串、字符集和转换 C.2 与MFC
共享
的类 C.3 实现
COM
服务器 C.4 ActiveX控件和控件容纳 C.5
ATL
_MIN_CRT变化 C.6 总结 附录D 属性化
ATL
D.1
ATL
Attributes的基础 D.2 属性化
ATL
的未来 D.3 总结 索引
Visual C++实践与提高-
COM
和
COM
+篇『PDF』
因文件超过20M不能上传,所以拆分为两个文件分次上传 第1章
COM
背景知识 1.1
COM
的起源 1.1.1 软件业面临的挑战 1.1.2 传统解决方案 1.1.3 面向
对象
程序设计方法 1.1.4 最终解决方案:
组件
软件 1.1.5 面向
对象
的
组件
模型——
COM
1.2
COM
的发展历程 1.2.1
COM
以前的
对象
技术:DDE、OLE 1、VBX控件 1.2.2
COM
首次亮相:OLE2 1.2.3 Microsoft拥抱Internet:ActiveX 1.2.4 更多的新名词:Windows DNA和
COM
+ 1.2.5 远程
对象
:ORBs和D
COM
1.2.6
COM
的最新版本:
COM
+ 1.3
COM
技术现状 1.3.1
COM
与CORBA 1.3.2
COM
与Enterprise Java Beans 1.3.3 Windows之外的
COM
小结 第2章 从C++到
COM
2.1 C++客户重用C++
对象
——例程DB 2.1.1 C++
对象
2.1.2 客户程序 2.2 将C++
对象
移进DLL中——例程DB_cppdll 2.2.1 成员函数的引出 2.2.2 内存分配 2.2.3 Unicode/ASCII兼容 2.2.4 例程实现 2.2.4.1 修改接口文件 2.2.4.2 修改
对象
程序 2.2.4.3 修改客户程序 2.3 C++
对象
使用抽象基类——例程DB_vtbl 2.3.1 问题:私有
数据
成员被暴露 2.3.2 解决方案:抽象基类 2.3.2.1 什么是抽象基类(Abstract Base Class) 2.3.2.2 实现秘诀:虚函数(Virtual Functions) 2.3.3 使用抽象基类 2.3.4 例程实现 2.3.4.1 修改接口文件 2.3.4.2 修改
对象
程序 2.3.4.3 修改客户程序 2.4 改由
COM
库装载C++
对象
——例程dbalmost
com
2.4.1
COM
库 2.4.2
对象
创建的标准入口点 2.4.3 标准
对象
创建API 2.4.4 标准
对象
注册 2.4.5 例程实现 2.4.5.1 修改接口文件 2.4.5.2 修改
对象
程序 2.4.5.3 修改客户程序 2.5 将C++
对象
变成
COM
对象
2.5.1 引用计数 2.5.2 多接口 2.5.3 IUnknown接口 2.5.4 标准类厂接口:IClassFactory 2.5.5
对象
代码的动态卸载 2.5.6 自动注册 2.5.7 例程实现 2.5.7.1 修改接口文件 2.5.7.2 修改
对象
程序 2.5.7.3 修改客户程序 2.6 为
COM
对象
添加多接口支持 2.6.1 多接口 2.6.2 DEFINE_GUID 2.6.3 例程实现 2.6.3.1 修改接口文件 2.6.3.2 修改
对象
程序 2.6.3.3 修改客户程序 小结 第3章
COM
基础知识 3.1
对象
与接口 3.1.1
COM
对象
3.1.2
COM
接口 3.1.3 IUnknown接口 3.1.3.1 生存期控制:AddRef和Release 3.1.3.2 接口查询:QueryInterface 3.1.4 全球唯一标识符GUID 3.1.5
COM
接口定义 3.1.6 接口描述语言IDL 3.2
COM
应用模型 3.2.1 客户/服务器模型 3.2.2
进程
内
组件
3.2.3
进程
外
组件
3.2.4
COM
库 3.2.5 HRESULT返回值 3.2.6
COM
与注册表 3.3
COM
组件
3.3.1 实现类厂
对象
3.3.2 类厂
对象
的创建 3.3.3 实现自动注册 3.3.4 实现自动卸载 3.4
COM
客户 3.4.1
COM
对象
创建函数 3.4.1.1 CoGetClassObject 3.4.1.2 CoCreateInstance 3.4.1.3 CoCreateInstanceEx 3.4.2 如何调用
进程
内
组件
3.4.3
COM
客户调用
进程
外
组件
3.5 进一步认识
COM
3.5.1 可重用机制:包容和聚合 3.5.2
进程
透明性 3.5.3 安全性机制 小结 第4章
COM
扩展技术 4.1 可连接
对象
机制 4.1.1 客户、接收器与可连接
对象
4.1.1.1 接收器 4.1.1.2 可连接
对象
4.1.1.3 客户 4.1.2 实现可连接
对象
4.1.3 实现接收器 4.1.4 建立接收器与连接点的连接 4.1.5 获得出接口的类型信息 4.2 结构化存储 4.2.1 什么叫结构化存储和复合文件 4.2.2 存储
对象
和IStorage接口 4.2.2.1 IStorage接口 4.2.2.2 获得IStorage指针 4.2.2.3 释放STATSTG内存 4.2.2.4 枚举存储
对象
中的元
使用WTL进行Windows桌面应用开发-第二部
1. 在第一部基础上增加更深入的内容,比如WTL提供的标准Win32窗口和自定义窗口的使用方式. 2. 涉及到一些项目开发难题的窗口自定义的解决方案。 3. 涉及到Gdiplus绘图的项目开发难题的一些解决方案。 4. 推荐使用的...
C++标准库介绍.pdf
标准c库大全:C++标准库介绍 疯狂代码 http://CrazyCoder.cn/ ĵ:http:/CrazyCoder.cn/VC/Article12860.html 标准库中提供了C基本设施虽然C标准库随着C标准折腾了许多年直到标准出台才正式定型但是在标准库实 现上却很令人欣慰得看到多种实现并且已被实战证明为有工业级别强度佳作 1、Dinkumware C Library 参考站点:http://www.dinkumware.
com
/ P.J. Plauger编写高品质标准库P.J. Plauger博士是Dr. Dobb\'s设计杰出奖获得者其编写库长期被Microsoft采 用并且最近Borland也取得了其OEMlicense在其C/C产品中采用Dinkumware库 2、RogueWave Standard C Library 参考站点:http://www.roguewave.
com
/ 这个库在Borland C Builder早期版本中曾经被采用后来被其他库给替换了笔者不推荐使用 3、SGI STL 参考站点:http://www.roguewave.
com
/ SGI公司C标准模版库 4、STLport 参考站点:http://www.stlport.org/ SGI STL库
跨
平台可移植版本 C各大有名库介绍——准标准库Boost Boost库是个经过千锤百炼、可移植、提供源代码C库作为标准库后备是C标准化
进程
发动机的 Boost库由 C标准委员会库工作组成员发起在C社区中影响甚大其成员已近2000人 Boost库为我们带来了最新、最酷、最 实用技术是不折不扣“准”标准库 Boost中比较有名气有这么
几个
库: Regex 正则表达式库 Spirit LL parser framework用C代码直接表达EBNF Graph 图
组件
和算法 Lambda 在地方定义短小匿名
对象
很实用functional功能 concept check 检查泛型编程中concept Mpl 用模板实现元编程框架 Thread 可移植C多线程库 Python 把C类和映射到Python的中 Pool 内存池管理 smart_ptr 5个智能指针学习智能指针必读份不错参考是来自CUJ文章: Smart Poers in Boost,哦这篇文章可以查到CUJ是提供在线浏览中文版见笔者在Dr.Dobb\'s Journal软件 Software研发杂志第7辑上译文 Boost总体来说是实用价值很高质量很高库并且由于其对
跨
平台强调对标准C强调是编写平台无关现代C开 发者必备工具但是Boost中也有很多是实验性质东西在实际开发中实用需要谨慎并且很多Boost中库功能堪称对 语言功能扩展其构造用尽精巧手法不要贸然花费时间研读Boost另外面比如Graph这样库则是具有工业强度结构 良好非常值得研读精品代码并且也可以放心在产品代码中多多利用 参考站点:http://www.boost.org C各大有名库介绍——GUI 在众多C库中GUI部分库算是比较繁荣也比较引人注目在实际开发中GUI库选择也是非常重要件事情下面我 们综述下可选择GUI库各自特点以及相关工具支持 1、MFC 大名鼎鼎微软基础类库(Microsoft Foundation Class)大凡学过VC人都应该知道这个库虽然从技术角度讲 MFC是不大漂亮但是它构建于Windows API 的上能够使员工作更容易,编程效率高减少了大量在建立 Windows 时必须编写代码同时它还提供了所有般 C 编程优点例如继承和封装MFC 编写在各个版本 Windows操作系统上是可移植例如在Windows 3.1下编写代码可以很容易地移植到 Windows NT 或 Windows 95 上但是在最近发展以及官方支持上日渐势微[Page] 2、QT 参考网站WebSite:http://www.trolltech.
com
Qt是Trolltech公司个多平台C图形用户界面应用框架它提供给应用开发者建立艺术级图形用户界面所需所 用功能Qt是完全面向
对象
很容易扩展并且允许真正地
组件
编程自从1996年早些时候Qt进入商业领域它已经成 为全世界范围内数千种成功应用基础Qt也是流行Linux桌面环境KDE 基础同时它还支持Windows、Macosh、 Unix/X11等多种平台 3、WxWindows 参考网站WebSite:http://www.wxwindows.org
跨
平台GUI库其类层次极像MFC所以有文章介绍从MFC到WxWindows代码移植以实现
跨
平台功能通过多 年开发也是个日趋完善GUI库支持同样不弱于前面两个库并且是完全开放源代码新近C Builder XGUI设计器就 是基于这个库 4、Fox 参考网站WebSite:http://www.fox-toolkit.org/ 开放源代码GUI库作者从自己亲身开发经验中得出了个理想GUI库应该是什么样子感受出发从而开始了对 这个库开发有兴趣可以尝试下 5、WTL 基于
ATL
个库使用了大量
ATL
轻量级手法模板等技术在代码尺寸以及速度优化方面做得非常到位主要面向 使用群体是开发
COM
轻量级供网络下载可视化Control控件开发者 6、GTK 参考网站WebSite:http://gtkmm.sourceforge.net/ GTK是个大名鼎鼎C开源GUI库在Linux世界中有Gnome这样杀手应用而Qt就是这个库C封装版本 C各大有名库介绍——网络通信 1、ACE 参考网站WebSite:http://www.cs.wustl.edu/~schmidt/ACE.html C库代表超重量级网络通信开发框架ACE自适配通信环境(Adaptive
Com
munication Environment)是可 以自由使用、开放源代码面向
对象
框架在其中实现了许多用于并发通信软件Software核心模式ACE提供了组丰 富可复用C包装外观(Wrapper Facade)和框架
组件
可
跨
越多种平台完成通用通信软件Software任务其中包括:事 件多路分离和事件处理器分派、信号处理、服务化、
进程
间通信、
共享
内存管理、消息路由、分布式服务动态 (重)配置、并发执行和同步等等 2、StreamModule 参考网站WebSite:http://www.omnarious.org/StrMod 设计用于简化编写分布式库尝试着使得编写处理异步行为更容易而不是用同步外壳包起异步本质 3、SimpleSocket 参考网站WebSite:http://home.hetnet.nl/~lcbokkers/simsock.htm 这个类库让编写基于客户/服务器更加容易 4、A Stream Socket API for C 参考网站WebSite:http://www.pcs.cnu.edu/~dgame/s/sC/s.html 又个对Socket封装库 C各大有名库介绍——XML 1、Xerces 参考网站WebSite:http://xml.apache.org/xerces-c/ Xerces-C 是个非常健壮XML解析器它提供了验证以及SAX和DOM APIXML验证在文档类型定义 (Document Type DefinitionDTD)方面有很好支持并且在2001年12月增加了支持W3C XMLSchema 基本完整 开放标准 2、XMLBooster[Page] 参考网站WebSite:http://www.xmlbooster.
com
/ 这个库通过产生特制parser办法极大提高了XML解析速度并且能够产生相应GUI来修改这个parser在 DOM和SAX两大主流XML解析办法的外提供了另外个可行解决方案 3、Pull Parser 参考网站WebSite:http://www.extreme.indiana.edu/xgws/xsoap/xpp 这个库采用pull思路方法parser在每个SAXparser底层都有个pullparser这个xpp把这层暴露出来直接给大 家使用在要充分考虑速度时候值得尝试 4、Xalan 参考网站WebSite:http://xml.apache.org/xalan-c/ Xalan是个用于把XML文档转换为HTML纯文本或者其他XML类型文档XSLT处理器 5、CMarkup 参考网站WebSite:http://www.firstobject.
com
/xml.htm 这是种使用EDOMXML解析器在很多思路上面非常灵活实用值得大家在DOM和SAX的外寻求点灵感 6、libxml http://libxmlplusplus.sourceforge.net/ libxml是对著名libxml XML解析器C封装版本 C各大有名库介绍——科学计算 1、Blitz 参考网站WebSite:http://www.oonumerics.org/blitz Blitz 是个高效率数值计算库它设计目是希望建立套既具像C 样方便同时又比Fortran速度更快数值计算环 境通常用C所写出数值比 Fortran慢20%左右因此Blitz正是要改掉这个缺点思路方法是利用Ctemplate技术执行 甚至可以比Fortran更快 Blitz目前仍在发展中对于常见SVDFFTsQMRES等常见线性代数思路方法并不提供不过使用者可以很容易 地利用Blitz所提供来构建 2、POOMA 参考网站WebSite:http://www.codesourcery.
com
/pooma/pooma POOMA是个免费高性能C库用于处理并行式科学计算POOMA面向
对象
设计方便了快速开发对并行机器 进行了优化以达到最高效率方便在工业和研究环境中使用 3、MTL 参考网站WebSite:http://www.osl.iu.edu/research/mtl Matrix Template Library(MTL)是个高性能泛型
组件
库提供了各种格式矩阵大量线性代数方面功能在某些 应用使用高性能编译器情况下比如Intel编译器从产生汇编代码可以看出其和手写几乎没有两样效能 4、CGAL 参考网站WebSite:www.cgal.org
Com
putational Geometry Algorithms Library目是把在计算几何方面大部分重要解决方案和思路方法以 C库形式提供给工业和学术界用户 2009-2-12 3:54:40 疯狂代码 http://CrazyCoder.cn/
皮肤控件研究文档,破解后的库文件,皮肤设计工具使用教程
皮肤控件研究文档,破解后的库文件,皮肤设计工具使用教程 皮肤控件 skin++ skincrafter SkinFeature IrisSkin 我
共享
的都是本人实际验证过的精品,有文档,破解后的库文件,皮肤设计工具使用教程, 1 软件界面 每个软件都要有自己的软件界面,对于软件开发来说,软件界面不一定是最重要的,但是也是相当重要的。一款软件要是可 以在界面上做好,吸引了客户的眼球,那这款软件也就相对成功了一半。 现在各行各业的软件都添加了自己的皮肤色彩,显示出了不同的特点。例如QQ,MSN,Foxmail等等,这些软件都修改 了自己软件的界面,将自己的界面化做的很完善,很漂亮。使用起来感觉很舒服。 2 软件界面的解决方案之一:使用皮肤
组件
皮肤
组件
能完全自动的为您的应用程序添加支持换肤功能,甚至不需要更改您的设计好的Form以及添加一行代码!您 也不再需要花费很多时间来使得自己的应用程序更漂亮。 3 选择皮肤
组件
产品时需要考虑的
几个
因素: 3.1 产品易用性 软件控件的API及使用 是否
简单
易用是我们需要考虑的
一个
重要关键。这个问题涉及到两个方面: 是否容易整合到现有应用程序中? 是否容易在新的应用程序项目中应用? 易用性: 界面控件类产品对应用程序的影响应该越小越好,要易于在现有应用程序中整合。这要求API简洁,同时也要求界面库易扩 展,兼容性强。 开发人员能否及时掌握并使用。 3.2 产品稳定性 界面库产品当前的稳定性当然是首要考虑的问题,目前可以从以下
几个
方面来鉴别产品的稳定性: 是否有足够多的示例Demos来演示控件库产品的各个方面的功能特性 是否已经有众多的成功案例 发布多长时间,同时是否一直有持续更新。 3.3 界面配置灵活性 界面开发
一个
很重要的问题是界面的样式是非常灵活的。比如
一个
button上面可能有
一个
图标,但有时也有可能需 要两个图标;有时有一行文字,但有时也可能有两行不同颜色的文字。界面库产品都需要考虑这些因素。以下是我们在开发 中经常遇到的问题: 控件界面的多样性。 如上面提到的不同位置多个图标,多行文字等。如果
一个
控件库的button只支持设置
一个
图标,这显然是不够灵活的,不实 用的。有人可能会说“把几张图片,切图时做到一起不就可以了么,反正
一个
控件也可以理解只有
一个
背景。” 如果涉及 到色调调整,这种做法会遇到麻烦,比如如下界面: 其中间图标在色调调整时,其色调不变的。如果图标和背景做到一起,则不能做到此效果。 控件界面元素的动态变化。 控件的界面表现不是静态的,很多情况我们需要能根据程序逻辑动态调整界面表现。 比如: 这种情况在界面设计与开发中是非常常见的,界面库产品需要非常容易的支持此特性。 需要根据程序逻辑自绘界面。 界面库不是万能的,界面库的设计者需要考虑尽可能的避免让客户去绘制界面,但却无法做到100%避免,由于程序逻辑的需 要,客户有时候需要自己绘制控件的某一部分。因此
一个
完整的界面库系统需要有自绘的支持,即在界面库绘制之后,让客 户有绘制的机会。同时也需要有一套机制来管理自绘部分的图片,颜色等资源,不然无法保证界面色调的一致性。 3.4 界面库高效性 界面库的效率是
一个
核心问题。糟糕的界面库效率会带来极坏的用户体验,这也应是公司在考虑
一个
界面控件类产 品时首要考虑的问题。可以通过以下几种方式来判断界面库类产品的效率: 拖拽窗口,观察是否有明显的停顿感。 可在
一个
系统下,找一些知名软件比较,如QQ/MSN等。如果有明显差异,则说明界面库在界面的绘制等方面存在欠缺。 拖拽窗口,观察界面控件是否有明显闪烁 如发生界面闪烁,则说明界面绘制的处理有些问题。 软件启动速度 界面库产品应该对图片等资源加载做优化,以尽可能的减少界面库加载等带来的时间开销。也可以通过比较软件启动速度来 比较界面库的效率。 软件色调调整时的效率 色调调整等操作一般会涉及到整体界面库的运算与操作,这种情况下也可以显示出不同界面库产品之间的效率差异。如果色 调调整明显带来停顿感,则说明界面库某些方面的效率偏低;一般来说DirectUI类型的库这方面效率会稍微高些。 3.5 周边产品完整性 软件界面开发会涉及到很多部分,通用的界面库产品只是其中的
一个
需求。界面开发中还会涉及到其他行业相关 的特殊控件、
组件
需求,如果控件提供商能一站式的解决这些问题,提供完整的界面解决方案,那将极大的减少界面方面的 研发投入。 IM即时聊天客户端产品,除了通用界面库的需求外,可能还需要制作聊天窗口的RichEdit扩展控件,配置面板,系统消息组 件,这些都是
一个
IM客户端必须的。 3.6 产品升级及售后服务 产品是否有持续的更新和升级 所选择的产品是否有持续的、及时的升级及更新,是否有可靠的售后服务也是需要考虑的重点。 如果控件提供商不能对产品持续投入,则产品不能保持技术竞争力,也不能给客户以信心。
一个
优秀的产品成长 的过程应该是根据客户的需求及行业的发展来不断升级和完善的过程。 售后服务是否有保障 有保障的售后服务是选择软件产品的基本条件。 一般来说以公司方式运营的产品在售后服务方面更有保障,双方可以以合同或协议的方式来保证产品的售后服务质量及 持续性。 4 市面上有几款比较好的皮肤
组件
4.1 Skin++(属于第二代的外挂式的界面库) 网站链接:http://www.uipower.
com
/index.html 4.1.1 简介: 产品易用性 界面与业务逻辑彻底分离; 支持流行的Windows操作系统; 支持所有Win32/Win64平台,包括.Net应用程序; Skin++ 支持的开发工具: 支持VC++各种版本:VC6,VC2003,VC2005,VC2008; 支持VisualStudio. Net各种版本:VisualStudio. Net 2003, 2005, 2008; 支持 PowerBuilder 各种版本:PowerBuilder 6.0,7.0,8.0,9.0,10.0,10.5,11.0; 支持 Delphi各种版本:Delphi 4,5,6,7,8,2005,2006; 支持C++ Builder 各种版本:C++ Builder 4,5,6,2006; 产品稳定性 成功案例: Skype 华为eSpace 阿里旺旺 淘宝助理 江民杀毒软件 浩方对战平台 360安全卫士(使用DirectUI, DirectUI为上海勇进软件skn++有限公司旗下产品) 等等 界面配置灵活性 可视设计,正式版提供皮肤设计工具SkinBuilder,SkinBuilder是所见即所得的设计开发环境,可以设计用户自己风格的界 面皮肤,并实现动态换肤功能。 没有下载到试验版的SkinBuilder,我联系的skn++的客服人员,只提供了
一个
视频教程和
一个
文档Skin++BuilderHelp.chm 视频教程链接地址:http://www.uipower.
com
/bbs/forum-56-1.html 皮肤设计工具(SkinBuilder)使用演示: http://www.uipower.
com
/DirectUIBuilder/DirectUIBuilder.html 其它信息:http://www.uipower.
com
/bbs/index.htm 界面库高效性 下载试用skn++网站上的Skin++ 演示系统 SkinPlusPlus.VS.Net.EvalEdition.3.1.1.exe 窗口数量小于10个时,颜色改变时间延迟不明显,窗口推动不会闪烁。 窗口数量大于30时: 我测试时在MDI应用程序中的主框架下新建100个子窗口,改变一下界面主题颜色,从第
一个
子窗口改变颜色到整个界面改变 颜色,用了1分27秒。平均一秒
一个
窗口,内存使用28.4M左右,改变颜色过程中CPU占用99%。颜色改变时间延迟明显,窗口 推动不会闪烁,但是响应速度很慢。 周边产品完整性 可视设计,提供皮肤设计工具,所见即所得的设计开发环境; 色调变换,支持皮肤色调变换,每一套皮肤都拥有N种色调风格; 皮肤资源海量,提供方便的皮肤转换工具,可以将目前主流的皮肤主题转换成Skin++格式; 支持Unicode,提供多种编码格式; 支持静态库链接,与客户程序可以进行无缝整合; 支持第三方控件; 产品升级及售后服务 产品分为:标准版,专业版,企业版,高级版,企业源码版 根据购买的版本的不同服务的项目和时间各异: 提供4到32小时的面对面开发培训 提供1到12个月的免费售后技术服务期 同步升级1个月到12个月 价格:(skin++客服人员提供的价格) skin++ directUI 标准版 价格 5800- 专业版 价格 17800 企业版 价格 38800 58800 高级企业版 价格 58800 88800 企业源码版 价格 98800 控件源码版 价格 158800 平台源码版 价格 218800 4.1.2 详细信息: 链接到<< 皮肤控件:Skin++产品详细信息>> 4.2 DSkinLite 网站链接:http://www.uieasy.cn/ 4.2.1 简介: 产品易用性 DSkinLite界面库API及XML配置语法
简单
,开发人员一般可以在2-3天内熟悉使用方法。DSkinLite界面库API共20个左右,常 用API函数应该在5左右。同时DSkinLite采用C++编写,专为Visual Studio开发者设计,开发者可以很容易的将DSkinLite整 合到已有软件工程中或者迅速开发新的软件。 DSkinLite使用XML配置界面样式,定义界面资源(字体,颜色,图片)等。借助于XML的灵活的语法,可以描述多 种多样的控件界面风格。因此不管您是否有意选择DSkinLite界面产品,您都可以下载我们的使用试用版,了解DSkinLite界 面库的设计风格,相信会让您了解一种全新的界面产品设计理念,给您的界面开发带来启发。 产品稳定性 近期的客户:长江证券 广州因豪集团 易酷创新 IM即时聊天类的客户比较多 界面配置灵活性 需要熟悉xml语法。 界面配置灵活。DSkinLite界面库采用XML管理GDI元素,并独创了将界面元素抽象为图片,矩形,线条,文字等元素。任何
一个
控件界面均可以由这些元素来组合,使用DSkinLite可以轻松配置各种界面效果。如下图所示: 由此在
一个
控件界面中,可以灵活的配置界面元素,可以满足绝大多数界面设计需要. 动态的控制界面元素。同时DSkinLite提供相应的API可以控制这些元素(image,text,rect)的显示/隐藏,同时修正某些 属性,如image的picfile属性即更换图片,text的content属性即文本内容。这种界面需求在界面开发中十分常见。 界面库高效性 DSkinLite与其他界面库相比有以下特点: 没有采用Hook所有
进程
消息的方式,因此没有替换系统相关对话框。DSkinLite 只是采用MFC,
ATL
等framework类似的方式,
简单
替换窗口过程,截取界面绘制等消息,对应用程序来说基本上是透明的。 从这个方面讲,DSkinLite是一款轻量级的界面库,界面效率较高。 DSkinLite内部实现跟MFC类似,就是使用SetWindowLong替换窗口过程,然后截获绘制相关消息绘制界面. 周边产品完整性 没有可视化皮肤编辑工具 控件的样式定义于XML中,你可以在xml中定义一张图片,并设置其在窗口的任何位置,包括标题栏区域, 产品升级及售后服务 DSkinLite界面库产品及服务: DSkinLite产品使用授权 软件界面开发服务 控件定制服务 ekRichEdit 控件: ekRichEdit源码版使用授权 RichEdit控件定制服务 DirectUI界面库: DirectU产品源码使用授权 控件定制服务 这个公司的UI设计也是外包的, 有专门针对IM即时聊天的扩展控件 ekRichEdit; 价格 http://www.uieasy.cn/dskinlite/purchase.html DSkinLite界面库企业版(¥12000) 企业版售后服务如下: 12个月免费Email技术支持 12个月免费版本升级 8小时免费技术培训 两个工作日技术支持响应 软件界面开发服务(¥5000起) 软件界面框架开发服务,根据客户需求及提供的UI设计图片,完成软件界面框架开发。此服务费用为5000元起,具体费用需 要根据用户的需求评估具体工作量来定。 控件定制服务(¥2000起) 如您需要一些特殊的控件,我们可以根据您的需求定制控件。此服务费用为2000元起,具体需要根据控件需求及具体工作量 来定。 4.3 其他产品及信息: 4.3.1 东日IrisSkin 支持Delphi 5/6/7/2005,C++Builder 5/6,BDS 2006,RAD Studio 2007/2009/2010/XE; Microsoft VisualStudio.NET 2002/2003/2005/2008/2010; 含有免费的SkinBuilder工具 IrisSkin 共有两个版本,
一个
是IrisSkin.dll 用于.Net Framework1.0/1.1 和IrisSkin2.dll 用于.Net Framework2.0版 本。详细内容见安装文件的help文档。 除此之外,东日还有两个很cool的Menu: MatrixMenu和WheelMenu。 (详细内容请参见http://www.sunisoft.cn/irisskin)。 《皮肤控件:东日 Skin详细信息.doc》 4.3.2 Appface Appface支持的语言与开发环境是我见到的最多的,在。net上面使用起来相对前面4中都相对复杂一点, 不过看看那个 Demo也差不多会了,还是
几个
函数的使用。 (详细内容请参见http://www.appface.net)。 4.3.3 SkinSE 网站链接:http://www.skinse.
com
/ 是一款真正意义上适合软件界面开发的C++皮肤库。通过使用XML文件来配置GDI资源(如:图片、字体、颜色等),最大程度将 界面与逻辑分开,让程序员有更多的时间去进行软件内部的逻辑处理。SkinSE没有采用传统的HOOK修改窗口过程函数的方式 ,而是只是针对具体窗口进行界面处理。SkinSE只用到了windows
几个
底层的核心库,没有用到(MFC/
ATL
等第三方库),采用 纯API编写,采用C语言导出方式,增强可移植性。 4.3.4 DotNetSkin DotNetSkin的用法和IrisSkin差不多。此外,网站提供了
几个
免费的很cool的控件, Button,RadioButton, CheckBox, 那个button和codeproject的XPButton有的一拼了。 (详细内容请参见http://www.dotnetskin.net)。 4.3.5 SkinCrafter SkinCrafter地用法和Skin++有点类似,都是添加
一个
Com
引用,然后加上几句语句用来Load皮肤,和Apply皮肤。另外, SkinCrafter还另外提供了为Windows Installer换肤的软件。 (详细内容请参见http://www.skincrafter.
com
)。 4.3.6 SkinEngine Alcyonesoft推出了SkinEngine,支持的语言数目与Appface不相上下,用法和Skin++, SkinCrafter类似。(详细内容参 见http://www.ksdev.
com
) 6、 DotNetMagic提供了许多漂亮的控件(http://www.dotnetmagic.
com
), 7、DotNetBar许多很有创意,很炫的控件(http://www.dev
com
ponents.
com
) 8、Divelements 的许多漂亮的控件(http://www.divelements.co.uk) VclSkin DevExpress系列 XPMenu、 SuiPack、 rainxp、 Flatstyle、 skinengine..... 4.3.7 其他公司的界面库: 金山 自己的界面库; 瑞星 自己的界面库; 腾讯 自己的界面库,皮肤设计工具做的最精细; 迅雷7 自己的皮肤库,采用lua+xml架构,扩展性强,效率高,“万能皮肤库”。
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章