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