王朝百科
分享
 
 
 

VCF

王朝百科·作者佚名  2009-12-22  
宽屏版  字体: |||超大  

五子棋术语VCF:(Victory of Continuous Four的缩写)五子棋中引入的英文名称,即利用连续不断冲四这种绝对先手,直至最终成五而取得胜利的一种技巧。简称“连续冲四胜”或“连冲胜”。

常为五子棋残局排局解题的一种取胜技巧。

计算机术语文件扩展名

outlook中的联系人,可以复制粘贴到outlook的联系人当中,发信时是联系人的地址。

The Visual Component Framework

The Visual Component Framework is an advanced C++ application framework that makes it easy to produce powerful C++ applications. The framework is a based on a thoroughly modern C++ design and has built in support for Rapid Application Development (RAD). The framework is designed to be portable over multiple platforms and compilers, so you don't have to lose all that work that went into writing your app for a single platform!

VCF是一个C++编写的开源项目,全名Visual Component Framework,中文名:可视化组件框架。在这里先把我这两天的学习体会记录一下。

程序框架库应该可以算是系统级软件,它提供给用户一种相对固化的编程方式,进而简化系统编程。想想最开始在Win3.1下使用SDK开发程序的日子,我们真的应该感谢编出这些框架库的英雄们。

最早且最流行的框架库应该是Borland公司的OWL库(早期的Borland公司推出的每一样东西都是极品)。再后来也是目前最流行的框架库就是MFC了,C++Builder中的VCL库也是非常有特色的。最能评价MFC和VCL的好坏的人,应该是侯捷,他分别写了《深入浅出 MFC》和《深入浅出VCL》,对每个库的分析都是非常不错的。

目前,随着计算机技术的发展,越来越多的人们对计算机的熟悉,框架库的数量和类别也越来越多,及外延也越来越广,以至于在某时,我们不知道某个库算不算框架库。就象前几天分析的WTL(它也变成开源项目了),以及目前名声在外的STL、BOOST、WXWINDOW等。他们也应该属于框架库吧。

还有三个软件是非常值得一提的:

1、AGG,一个类似于GDI+的2D图形库,写得非常的好,如果有空,我应该将前段时间分析AGG的经验写出来。

2、LOKI库,就是那个写《C++设计新思维》的作者提供的,如果有空,我应该将前段时间分析LOKI的经验写出来。

3、CPPUNIT库,一个单元测试的工具。

谈了这么多,还是重点讲一下VCF本身吧。

我看重并分析VCF的原因,应该是其RTTI功能,其次是它采用了比较先进的C++编程手法。

由于我正在编写一个开源的工控软件,想编写一种通用的属性处理程序,编了很长时间没有进展,后来仔细分析了一下我的需求,才发现我想要实现的功能,其实就是一个RTTI的扩展功能,何不直接找一个具有RTTI功能的库来分析一下呢?于是上网查找,发现VCF对RTTI的实现是最完整、最符合我的需要的。而其它库,对RTTI的实现,要么不完整,要么实现方法太差。

RTTI的实现,首先应该看语言本身对其的支持程度,象Delphi、C#、VB等语言本身就有Property属性的,对RTTI 的实现相对就简单的多,而C++语言本身无支持Property的语法,而在CodeProject上看到的一些实现方法,都不是太好。

昨天花了一晚上将VCF的帮助文档看完,并分析了其RTTI的实现方法,体会如下:

1、由于VCF还处在开发阶段,其帮助文档很不完善,有许多内容都是空的;

2、VCF的源码则非常清晰,不愧不大家手笔;

3、VCF对RTTI的实现,包含在FoundationKit的RTTI目录中,包含了十多个文件,看其文件内容,其实现方法应该算是中规中矩的;

4、VCF实现了如下RTTI功能:

A、运行时查找对象所对应的类的名称、ID、描述;

B、类的继承关系;

C、Property功能;

D、Event功能;

E、Method功能;

F、为属性编辑而实现的Enum功能;

G、为属性编辑而实现的Item功能;

H、运行时基于名称和ID的动态对象创建功能;

I、Interface功能;

J、运行时类信息的注册功能;

等等。

5、从功能上讲,这非常接近我的需求,但还差如下功能:

A、基于属性的自动保存和读入功能(象Delphi那样);

B、运行时提供属性的隐藏和恢复功能,虽然目前通过其运行时增加和删除属性可以变通实现,但实现起来不方便;

C、属性的分层;

D、重点属性的标注;

6、另外,从其实现看,性能可能会是一个非常大的问题,因为其运行时对属性的访问都是通过名称来访问的,即便是通过UUID访问,也是通过UUID的字符串访问的,而实现上,在一个程序运行阶段,大部分类属性的访问是不需要通过名称来访问,而直接可以通过序号或编号来访问的。如果我想将它拿来用,一定要先对其性能进行重写。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有