??xml version="1.0" encoding="utf-8" standalone="yes"?> C++各大有名库的介绍——GUI 在众多C++的库中,GUI部分的库是比较J荣Q也比较引h注目的。在实际开发中QGUI库的选择也是非常重要的一件事情,下面我们lD一下可选择的GUI库,各自的特点以?qing)相兛_L(fng)支持?/strong> 1、MFC 大名鼎鼎的微软基cdQMicrosoft Foundation
ClassQ。大凡学qVC++的h都应该知道这个库。虽然从技术角度讲QMFC是不大漂亮的Q但是它构徏于Windows API
之上Q能够ɽE序员的工作更容?~程效率高,减少?jin)大量在建?Windows E序时必ȝ写的代码Q同时它q提供了(jin)所有一?C++
~程的优点,例如l承和封装。MFC ~写的程序在各个版本的Windows操作pȝ上是可移植的Q例如,在Windows
3.1下编写的代码可以很容易地UL?Windows NT ?Windows 95 上。但是在最q发展以?qing)官?gu)持上日渐势微?/strong> 2、QT 参考网站:(x)http://www.trolltech.com Qt是Trolltech公司的一个多q_的C++囑Ş用户界面应用E序框架。它提供l应用程序开发者徏立艺术的图形用L(fng)
面所需的所用功能。Qt是完全面向对象的很容易扩展,q且允许真正地组件编E。自?996q早些时候,Qtq入商业领域Q它已经成ؓ(f)全世界范围内数千U?
成功的应用程序的基础。Qt也是行的Linux桌面环境KDE
的基Q同时它q支持Windows、Macintosh、Unix/X11{多U^台?/strong> 3、WxWindows 参考网站:(x)http://www.wxwindows.org 跨^台的GUI库。因为其cdơ极像MFCQ所以有文章介绍从MFC到WxWindows的代码移植以实现跨^台的功能。通过
多年的开发也是一个日完善的GUI库,支持同样不弱于前面两个库。ƈ且是完全开放源代码的。新q的C++ Builder
X的GUI设计器就是基于这个库的?/strong> 4、Fox 参考网站:(x)http://www.fox-toolkit.org/ 开放源代码的GUI库。作者从自己亲n的开发经验中得出?jin)一个理想的GUI库应该是什么样子的感受出发Q从而开始了(jin)对这个库的开发。有兴趣的可以尝试一下?/strong> 5、WTL ZATL的一个库。因Z用了(jin)大量ATL的轻量手法Q模板等技术,在代码尺寸,以及(qing)速度优化斚w做得非常C。主要面向的使用体是开发COM轻量U供|络下蝲的可视化控g的开发者?/strong> 6、GTK 参考网站:(x)http://gtkmm.sourceforge.net/ GTK是一个大名鼎鼎的C的开源GUI库。在Linux世界中有Gnomeq样的杀手应用。而Qt是q个库的C++装版本?/strong> C++各大有名库的介绍——网l通信 Q、ACE 参考网站:(x)http://www.cs.wustl.edu/~schmidt/ACE.html C++库的代表Q超重量U的|络通信开发框架。ACE自适配通信环境QAdaptive Communication
EnvironmentQ是可以自由使用、开放源代码的面向对象框Ӟ在其中实C(jin)许多用于q发通信软g的核?j)模式。ACE提供?jin)一l丰富的可复用C++
包装外观QWrapper
FacadeQ和框架lgQ可跨越多种q_完成通用的通信软gdQ其中包括:(x)事g多\分离和事件处理器分派、信号处理、服务初始化、进E间通信、共享内
存管理、消息\由、分布式服务动态(重)(j)配置、ƈ发执行和同步Q等{?/p>
Q、StreamModule 参考网站:(x)http://www.omnifarious.org/StrMod 设计用于化编写分布式E序的库。尝试着使得~写处理异步行ؓ(f)的程序更Ҏ(gu)Q而不是用同步的外壛_起异步的本质?/p>
Q、SimpleSocket 参考网站:(x)http://home.hetnet.nl/~lcbokkers/simsock.htm q个cd让编写基于socket的客?服务器程序更加容易?/p>
Q、A Stream Socket API for C++ 参考网站:(x)http://www.pcs.cnu.edu/~dgame/sockets/socketsC++/sockets.html 又一个对Socket的封装库?/p>
C++各大有名库的介绍——XML Q、Xerces 参考网站:(x)http://xml.apache.org/xerces-c/ Xerces-C++ 是一个非常健壮的XML解析器,它提供了(jin)验证Q以?qing)SAX和DOM
API。XML验证在文档类型定?Document Type
DefinitionQDTD)斚w有很好的支持Qƈ且在2001q?2月增加了(jin)支持W3C XMLSchema 的基本完整的开放标准?/p>
Q、XMLBooster 参考网站:(x)http://www.xmlbooster.com/ q个库通过产生特制的parser的办法极大的提高?jin)XML解析的速度Qƈ且能够生相应的GUIE序来修改这个parser。在DOM和SAX两大LXML解析办法之外提供?jin)另外一个可行的解决Ҏ(gu)?/p>
Q、Pull Parser 参考网站:(x)http://www.extreme.indiana.edu/xgws/xsoap/xpp q个库采用pullҎ(gu)的parser。在每个SAX的parser底层都有一个pull的parserQ这个xpp把这层暴露出来直接给大家使用。在要充分考虑速度的时候值得试?/p>
Q、Xalan 参考网站:(x)http://xml.apache.org/xalan-c/ Xalan是一个用于把XML文档转换为HTMLQ纯文本或者其他XMLcd文档的XSLT处理器?/p>
Q、CMarkup 参考网站:(x)http://www.firstobject.com/xml.htm q是一U用EDOM的XML解析器。在很多思\上面非常灉|实用。值得大家在DOM和SAX之外L一点灵感?/p>
Q、libxml++ http://libxmlplusplus.sourceforge.net/ libxml++是对著名的libxml XML解析器的C++装版本?/p>
C++各大有名库的介绍——科学计?/strong> Q、Blitz++ 参考网站:(x)http://www.oonumerics.org/blitz Blitz++ 是一个高效率的数D函数库Q它的设计目的是希望建立一套既具像C++
一h便,同时又比Fortran速度更快的数D环境。通常Q用C++所写出的数值程序,?
Fortran?0%左右Q因此Blitz++正是要改掉这个缺炏V方法是利用C++的template技术,E序执行甚至可以比Fortran更快?/p>
Blitz++目前仍在发展中,对于常见的SVDQFFTsQQMRES{常见的U性代数方法ƈ不提供,不过使用者可以很Ҏ(gu)地利用Blitz++所提供的函数来构徏?/p>
Q、POOMA 参考网站:(x)http://www.codesourcery.com/pooma/pooma POOMA是一个免费的高性能的C++库,用于处理q行式科学计。POOMA的面向对象设计方便了(jin)快速的E序开发,对ƈ行机器进行了(jin)优化以达到最高的效率Q方便在工业和研I环境中使用?/p>
Q、MTL 参考网站:(x)http://www.osl.iu.edu/research/mtl Matrix Template Library(MTL)是一个高性能的泛型组件库Q提供了(jin)各种格式矩阵的大量线性代数方面的功能。在某些应用使用高性能~译器的情况下,比如Intel的编译器Q从产生的汇~代码可以看出其与手写几乎没有两L(fng)效能?/p>
Q、CGAL 参考网站:(x)www.cgal.org Computational Geometry Algorithms Library的目的是把在计算几何斚w的大部分重要的解x案和Ҏ(gu)以C++库的形式提供l工业和学术界的用户?/p>
================================================================ 作者说QMFC是不大漂亮的。我至今没有q样的认识。好像很多hq样_(d)我不明白Z么,我觉得MFC是优的Q合适的。而且只要
你明白了(jin)MFC的模块状态、线E状态和模块U程状态,明白?jin)OLEQ那么MFC是清晰的。有些说MFC的宏不好Q我不认为,ATL也像MFC一L(fng)宏,
而且q些宏虽不利于调试,却是利于阅读的。如果说MFC提供的界面元素不够新颖,不够丰富Q我没有M意见Q这也是BCG库及(qing)cM的库存在的原因?/strong>
access(); stat(); fopen(); fgets(); fgetc(); fclose(); fflush(); fwrites();
目录相关
opendir(); readdir();
]]>
]]>
同步通信方式与异步通信方式有什么区?br>
资料一Q?br>在串行通信中,׃是一位一位地q行数据传送。ؓ(f)?jin)把每个字节区别开来,需
要收发双方在传送数据的串行信息中Q加入一些标C号位。根据所d的标C?br>位的不同方式Q分成同步通信和异步通信两种?br>
异步通信在添加标C号位Ӟ把所传送的数据以字节ؓ(f)单位。每个字节前加上
一位v始位Q每个字节的后面加上停止位,停止位可以是1位?Q?位或2位。有Ӟq?br>要加上一位奇偶检验位?br>
1Qv始位Q+2Q停止位Q+1Q奇偶校验位Q?#922;4位标C号位。这P异步?br>信方式的效率比较低?br>
同步通信是把所传送的数据以多个字节(100字节以上Qؓ(f)单位Q在其前后添?br>标志?br>
资料二:(x)
异步通信”是一U很常用的通信方式。异步通信在发送字W时Q所发送的字符之间的时间间隔可以是L的。当?dng)接收端必Ld好接收的准备Q如果接收端?
机的甉|都没有加上,那么发送端发送字W就没有意义Q因为接收端Ҏ(gu)无法接收Q。发送端可以在Q意时d始发送字W,因此必须在每一个字W的开始和l束?
地方加上标志Q即加上开始位和停止位Q以便接收端能够正地每一个字W接收下来。异步通信的好处是通信讑֤单、便宜,但传输效率较低(因ؓ(f)开始位?
停止位的开销所占比例较大)(j)?
异步通信也可以是以作ؓ(f)发送的单位。接收端必须随时做好接收帧的准备。这是,帧的首部必须设有一些特D的比特l合Q得接收端能够扑և一?
的开始。这也称为定界。定界q包含确定的结束位|。这有两U方法。一U是在的尾部设有某U特D的比特l合来标志的结束。或者在帧首部中设有帧长
度的字段。需要注意的是,在异步发送Ӟq不是说发送端对中的每一个字W都必须加上开始位和停止位后再发送出去,而是_(d)发送端可以在Q意时间发送一
个Q而与之间的时间间隔也可以是Q意的。在一帧中的所有比Ҏ(gu)q箋发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先q行比特同步Q?
每个字符开始发送的旉可以是Q意的t0 0 1 1 0 1 1
0起始位结束位t每个帧开始发送的旉可以是Q意的以字Wؓ(f)单位发送以帧ؓ(f)单位发送开始l束
“同步通信”的通信双方必须先徏立同步,卛_方的旉要调整到同一个频率。收发双方不停地发送和接收q箋的同步比Ҏ(gu)。但q时q有两种不同?
同步方式。一U是使用全网同步Q用一个非常精的L钟对全网所有结点上的时钟进行同步。另一U是使用准同步,各结点的旉之间允许有微的误差Q然后采
用其他措施实现同步传输?br>
]]>
然后看看《CE序设计语言》K&RQ这样呢Q基本上可以进行一般的~程?jin),Z找本数据l构的书来看?
如果惛_?fn)UNIX/LINUX的编E,《APUE》绝对经典的教材Q加׃下功底,学习(fn)《UNP》的W二南这样基本上pȝ斚w的就可以掌握?jin)?
然后再看Douglus E. Comer的《用TCP/IPq行|际互连》第一P学习(fn)一下网l的知识Q再看《UNP》的W一P不仅学习(fn)|络~程Q而且对系l编E的一些常用的技巧就很熟(zhn)了(jin)Q如果l网l编E,看《TCP/IPq行|际互连》的W三P里面有很多关于应用协议telnet、ftp{协议的~程?br>如果惛_讑֤驱动E序Q首先?zhn)的系l编E的接口比如文g、IPC{必要熟知?jin),再学习(fn)《LDD??br>
对于几本l典教材的评P(x)
《The C Programing Language》K&R l典的C语言E序设计教材Q作者是C语言的发明者,教材内容****。虽然有点老,但是必备的一本手册,现在有时候我q常ȝ。篇q比较小Q但是每看一遍,有一遍的收获。另外也可用谭浩强的《C语言E序设计》代ѝ?br>
《Advanced Programing in Unix Envirement?W.Richard StevensQ也是非常经典的书(废话QStevens的书哪有不经典的Q)(j)Q虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料。国内的译的《UNIX环境高~程》的水^不怎么P现在有媄(jing)印版Q直接读英文比读中文来得Ҏ(gu)?br>
《Unix Network Programing》W.Richard StevensQ第一卯BSD Socket|络~程接口和另外一U网l编E接口的Q不q现在一般都用BSD SocketQ所以这本书只要看大U一半多可以了(jin)。第二卷没有设计到网l的东西Q主要讲q程间通讯和PosixU程。所以看?jin)《APUE》以后,可以看它了(jin)Q基本上pȝ的东西就由《APUE》和《UNP》vol2概括?jin)。看q《UNP》以后,(zhn)就?x)知道系l编E的l大部分~程技巧,即卷一是讲|络~程的。国内是清华译得《Unix|络~程》,译者得功底也比较高Q翻译地比较好。所以徏议还是看中文版?br>
《TCP/IP解》一׃P卷一讲协议,卷二讲实玎ͼ卷三讲编E应用。我没有怎么看过。,但是据说也很l典的,因ؓ(f)我没有时间看卷二Q所以不便评仗?br>
《用TCP/IPq行|际互连》Douglus.E.Comer 一׃P卷一讲原理,卷二讲实玎ͼ卷三讲高U协议。感觉上q一套要比Stevens的那一套要好,pStevens也不得不承认它的W一卷非常经典。事实上Q第一卷即使你没有一点网l的知识Q看完以后也?x)对|络的来龙去脉了(jin)如指掌。第一卷中q有很多?fn)题也设计得l典和实用,因ؓ(f)作者本w就是一位教师,q且卷一是国外研I生的教材。习(fn)题ƈ没有{案Q留l读者思考,因ؓ(f)问题得答案可以让你成Z个中U的HackerQ这些问题的{案可以象Douglus索取Q不q只有他只给教师卷二我没有怎么看,卷三可以作ؓ(f)参考手册,其中C子也很经典。如果?zhn)看过Qterm的源代码Q就?x)知道Qterm的telnet 实现部分大多数就是从q本书的源代码过来的。对于网l原理的书,我推荐它Q而不是Stevens的《TCP/IP解》?br>
《Operating System - Design and Implement》这个是讲操作系l的书,用Minix做的例子。作者母语不是英文,所以英文看h比较晦ӆ。国内翻译的是《操作系l?设计与实现》,我没看过中文版,因ؓ(f)译者是晋元,他翻译的《APUE》已l让我失望头了(jin)。读?jin)这本书Q对操作pȝ的底层怎么工作的就?br>有一个清晰的认识?br>
《Linux Device Driver?e Qؓ(f)C多的关于Linux讑֤驱动E序的好书。不q内Ҏ(gu)些杂乱,如果(zhn)没有一些写驱动的经验,初次看会(x)有些怸着南北。国内翻译的是《Linux讑֤驱动E序》第二版Q第一版,W二版的译者我都有很深的接触,不过M上来_(d)虽然W二版翻译的有些不尽人意Q但是相比第一版来说已l超Z(jin)一大截。要读这一本书Q至应该先找一些《计机原理》《计机体系l构》的书来马马虎虎读读Q至应该对g和计机的工作过E有一些了(jin)解?img src ="http://www.shnenglu.com/yehongly/aggbug/58022.html" width = "1" height = "1" />
]]>
1Q?~写目的
说明~写q䆾目开发ȝ报告的目的,指出预期的阅读范围?br>1Q?背景
说明Q?
aQ本目的名U和所开发出来的软gpȝ的名Uͼ
bQ此软g的Q务提?gu)、开发者、用户及(qing)安装此Y件的计算中心(j)?br>IQ?定义
列出本文件中用到的专门术语的定义和外文首字母l词的原词组?br>1Q?参考资?
列出要用到的参考资料,如:(x)
aQ本目的已核准的计划Q务书或合同、上U机关的Ҏ(gu)Q?br> bQ属于本目的其他已发表的文Ӟ
cQ本文g中各处所引用的文件、资料,包括所要用到的软g开发标准?列出q些文g的标题、文
件编受发表日期和出版单位Q说明能够得到这些文件资料的来源?br>2 实际开发结?
2Q?产品
说明最l制成的产品Q包括:(x)
aQ程序系l中各个E序的名字,它们之间的层ơ关p,以千字节为单位的各个E序的程序量、存?/p>
媒体的Ş式和数量Q?br> bQ程序系l共有哪几个版本Q各自的版本号及(qing)它们之间的区别;
cQ每个文件的名称Q?
dQ所建立的每个数据库?如果开发中制订q配|管理计划,要同q个计划相比较?br>2Q?主要功能和性能
逐项列出本Y件品所实际h的主要功能和性能Q对照可行性研I报告、项目开发计划、功能需
Q求说明书的有关内容Q说明原定的开发目标是辑ֈ?jin)、未完全辑ֈ、或过?jin)?br>2Q?基本程
用图l出本程序系l的实际的基本的处理程?br>2Q?q度
列出原定计划q度与实际进度的Ҏ(gu)Q明说明,实际q度是提前了(jin)、还是gq了(jin)Q分析主要原?/p>
?
2Q?费用
列出原定计划费用与实际支?gu)用的?gu)Q包括:(x)
aQ工Ӟ以h月ؓ(f)单位Qƈ按不同别统计;
bQ计机的用时_(d)区别CPU旉?qing)其他设备时_(d)
cQ物料消耗、出差费{其他支出?
明确说明Q经Ҏ(gu)出?jin)、还是节余了(jin)Q分析其主要原因?br>3 开发工作评?
3Q?对生产效率的评h(hun)
l出实际生效率Q包括:(x)
aQ程序的q_生效率Q即每h月生产的行数Q?br> bQ文件的q_生效率Q即每h月生产的千字敎ͼ
q列出原订计划数作ؓ(f)Ҏ(gu)?br>3Q?对品质量的评h(hun)
说明在测试中(g)查出来的E序~制中的错误发生率,xq条指o(h)Q或语句Q中的错误指令数Q或
语句敎ͼ(j)。如果开发中制订q质量保证计划或配置理计划Q要同这些计划相比较?br>3Q?Ҏ(gu)术方法的评h(hun)
l出对在开发中所使用的技术、方法、工兗手D늚评h(hun)?
3Q?出错原因的分?
l出对于开发中出现的错误的原因分析?br>4 l验与教?
列出从这开发工作中所得到的最主要的经验与教训?qing)对今后的项目开发工作的?/p>