




已阅读5页,还剩73页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
郑州大学毕业设计(论文)题 目 局域网广播系统 i毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神 优 良 中 及格 不及格2、学生掌握专业知识、技能的扎实程度 优 良 中 及格 不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力 优 良 中 及格 不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性 优 良 中 及格 不及格5、完成毕业论文(设计)期间的出勤情况 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)指导教师: (签名) 单位: (盖章)年 月 日评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格建议成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)评阅教师: (签名) 单位: (盖章)年 月 日教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况 优 良 中 及格 不及格2、对答辩问题的反应、理解、表达情况 优 良 中 及格 不及格3、学生答辩过程中的精神状态 优 良 中 及格 不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范? 优 良 中 及格 不及格2、是否完成指定的论文(设计)任务(包括装订及附件)? 优 良 中 及格 不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义 优 良 中 及格 不及格2、论文的观念是否有新意?设计是否有创意? 优 良 中 及格 不及格3、论文(设计说明书)所体现的整体水平 优 良 中 及格 不及格评定成绩: 优 良 中 及格 不及格(在所选等级前的内画“”)教研室主任(或答辩小组组长): (签名)年 月 日教学系意见:系主任: (签名)年 月 日郑州大学电气工程学院毕业设计(论文)任务书学生 学号 专业 计算机科学与技术 班级 指导教师 单位 郑州大学 职称 高级工程师 题 目 局域网广播系统 一、毕业设计(论文)内容本系统是一个利用mfc实现的屏幕广播系统,是一个可以用于网络教学、交流的简单实用的工具。二、毕业设计(论文)应达到的主要指标远距离的技术支持必须依赖技术人员和用户之间的电话交流来进行,这种交流既耗时又容易出现错误。局域网广播管理系统就很方便的解决了这些问题。1.可以实现网络教学。在计算机教学实验中,指导老师的口头讲解往往不能使学生充分理解,这时就需要将老师的电脑屏幕图象实时传送到学生的电脑主机上,以方便学生的理解。此系统刚好能满足这方面的需求。2.实现屏幕的实时截取和传送。现在实时在线网络视频等都是在需要这样的一种技术,通过对局域网的研究来满足这方面的需求。我们这次开发过程中主要采用vc6.0作为主要的开发工具。采用vc+语言开发。三、设计(论文)成品要求1、实现远程视频教学、以及实时图像的传递。2、实现远程声音、图像和数字的实时传输。四、参考资料1anthony jones著 京京工作室译 windows网络编程技术 机械工业出版社出版2 anthony jones,jim ohlund著 杨合庆译 windows网络编程(第2版) 清华大学出版社出版 2002.103 bruce eckel 著 c/c+编程思想 刘宗田等译 机械工业出版社出版4 揣锦华编著 面向对象程序设计与vc+实践 西安电子科技大学出版社2005.025 杨小平主编 vc+项目案例导航 科学出版社 2003.26 刘静华,王永生著 最新vc+绘图程序设计技巧与实例教程 科学出版社出版2001.37 村山公(日)保著 tcp/ip计算机网络篇 科学出版社 2003.048 李凌编著 winsock 2网络编程实用教程 清华大学出版社出版9 邓全良编著 winsock网络程序设计 中国铁道出版社2002.0710 beck zaratian著 詹津明 杨欣译 visual c+ 使用指南 清华大学出版社五、进度安排进行日期:第 周 113 周( 2012年 3月 3 日 5月 30日)周次设计内容指导时间地点1项目任务和目标周五下午阶梯教室2、3资料准备周五下午阶梯教室4、5系统分析、需求收集和分析周五下午阶梯教室6、7概要设计周五下午阶梯教室8详细设计周五下午阶梯教室9、10编写代码周五下午阶梯教室11、12功能模块对接及测试周五下午阶梯教室13完善各项文档及和报告周五下午阶梯教室 指导教师:李 海 洋摘 要本系统是一个利用mfc实现的屏幕广播系统,是一个可以用于网络教学、交流的简单实用的工具。远距离的技术支持必须依赖技术人员和用户之间的电话交流来进行,这种交流既耗时又容易出现错误,许多用户对电脑知道的很少,当遇到问题时,他们必须向无法看到自己电脑屏幕的技术人员描述问题的症状,并且严格遵守技术人员的指示,精确地描述屏幕上的内容,而这一点对大多数没有什么电脑技术的用户来说很难做到,有了局域网广播系统,技术人员就可以看到用户的电脑屏幕很快找到问题的所在。在计算机教学实验中,指导老师的口头讲解往往不能使学生充分理解,这时就需要将老师的电脑屏幕图象实时传送到学生的电脑主机上,以方便学生的理解。此系统刚好能满足这方面的需求。本系统主要涉及服务器屏幕图像的获取、图像压缩、传送及接收。这个系统利用windows socket 来实现网络通信。mfc提供了类casyncsocket与其派生类csocket来进行通信编程。为了满足用户的要求,我在毕业设计中,用visual c+开发了一个局域网数据广播系统。并且作为毕业设计,对自己大学期间的学习做一个总结。关键字:广播数据报/屏幕广播/套接字abstractthis system is a screen broadcasting system,which is made with mfc.it is a simple tool which can be used in network teaching,communication and so on. remote technical support must rely on the exchange of telephone of technical staff with user.this kind of commucation will take time and will probably make mistakes.many people know little of computer,when they miss problems,they must describe the symptom of the problems to technicians who can not see the screen of the users computers.also the users must stand by the indications of technician strictly, to describe the contents of their screen. this is difficult to do for the users who know little of computers.if we have the lan broadcasting system,technicians will be able to see the screens of users computers and can soon find where the problem is. in calculator teaching experiment, the oral communication that guide the teacher explain in detail and cant usually make student comprehending well.now we need to send the picture of the teachers computer to students,with easy to understand for the students. this system can satisfy the need of this aspect at the right moment.this system mainly interfere with how to get the screen picture,how to compress the pictures,and how to send and receive data.we use windows socket to transmit the data.mfc offer a class casyncsocket and a class csocket for us to communicate information in the network.for the sake of request that satisfy the customer,in graduate design, i use the visual c+ developped a local area network data broadcast system.also as graduate design,i did a summary to the study of the period in university in myself.key word: broadcasting data report,broadcasting of screen, socket目 录毕业设计(论文)任务书1摘 要4abstract5目 录61 绪论71.1 该课题国内外发展现状71.2 项目来源及目标81.3 设计方法81.4 功能92 visual c+6.0及winsock2简介102.1visual c+6.0简介102.1.1什么是visualc+集成开发环境102.1.2 visual c+开发环境的窗口112.1.3使用在线帮助132.2 mfc简介162.2.1封装162.2.2 继承172.2.3 虚拟函数和动态约束172.2.4 mfc的宏观框架体系182.3.1什麼是windows sockets202.3.2 winsock的历史和优点212.3.3 mfc中winsock的应用222.3.4 winsock编程模型233 系统总体设计263.1 系统总体要求263.1.1 设计要求263.1.2 可行性分析263.1.3 设计思路263.2 需求分析263.2.1 引言263.2.2 任务概述273.2.3 功能需求273.2.4 运行环境273.3 功能模块框图283.3.1 整个系统总体模块图为:283.3.2 模块功能图为:283.3.3 服务器端模块框图为:293.3.4 服务器端各模块描述框图如下:293.4 各模块功能描述303.4.1服务器端各模块功能303.4.2 客户端各模块功能304 服务器端功能实现314.1实现方法简要介绍314.1.1 截取屏幕324.1.2 数据压缩324.1.3 传送数据344.2 服务器端个模块流程图354.3 服务器端主要界面365 全文总结375.1 总结375.2 课题展望37致 谢38参考文献39附录401 服务器端主要程序代码402 英文资料483 中文翻译551 绪论1.1 该课题国内外发展现状局域网数据广播技术可以广泛地应用到网络维护和管理方面。据统计,目前全世界80%以上的计算机网络主要从事网络通讯,因此该课题在国内外已经出现了很多类似的系统。有星澜多媒体网络教室,海天屏幕广播以及其他网络教室等。星澜多媒体网络教室(cinlan iclass)是一套应用于校园局域网和多媒体网络教室的教学应用软件,它针对多媒体网络技术和实际学校应用环境进行分析和优化处理,具有强大的教学能力和便捷的操作能力。新版本的“多媒体网络教室”在性能方面得到了很大的改进,全面支持window98 /window2000/ window xp,运行速度比以前更快,运行更加稳定可靠。另外,多媒体网络教室新增功能提供更加灵活的教学手段,使您的教学效果事半功倍。海天屏幕广播软件采用虚拟显示驱动,实时性好,cpu占用低,在局域网内能取得很好的效果。可以直接广播视频画面。本软件为绿色软件,仅服务端需要安装一个虚拟显示驱动程序,无需设置,操作简单。可应用于学校,企事业单位教学,培训,演示等场合。在进行通讯处理时,并不需要进行复杂的科学计算,而是主要从事大量数据的发送、接收工作。为了有效地使用连接局域网内计算机系统中的大量数据,很有必要采用一整套快速有效的数据通讯方法。广播数据即数据从一个工作站出发,局域网内的其他所有工作站都能收到它,这一特征适用于无连接协议,因为lan上的所有机器都能收到并处理广播消息,使用广播消息的不利之处是每台机器都必须对该消息进行处理。比如,一台机器在lan上广播一条消息,每台机器上的网卡都会收到这条消息并把它上传到堆栈处理。然后,堆栈将这条消息在所有网络应用中循环,看它们是否应该接受该数据包。通常,这个局域网上的多数机器都不对该消息感兴趣,但是各机器仍需要花费时间来处理该消息,看是否有应用对该数据包感兴趣。结果,高广播通信流使lan上的所有机器陷入困境,因为每个工作站都要检查这个数据包,一般情况下路由器都不会传送广播包。因此我们所做的这个系统服务器端发送的数据不经过路由器,直接发送到客户端。计算机具备高速传输信道,老师可充分利用在线功能实现师生、生生之间交流,得到及时迅速的反馈信息,大大减少教学的盲目性,提高课堂教学效率。因此越来越多的学校希望进行网络教学,也就需要各种各样的网络教学软件,屏幕广播是其中必不可少而且异常重要的一部分。在局域网中进行屏幕广播当然也是越来越重要的。1.2 项目来源及目标 远距离的技术支持必须依赖技术人员和用户之间的电话交流来进行,这种交流既耗时又容易出现错误,许多用户对电脑知道的很少,然而当遇到问题时,他们必须向无法看到自己电脑屏幕的技术人员描述问题的症状,并且严格遵守技术人员的指示,精确地描述屏幕上的内容,而这一点对大多数没有什么电脑技术的用户来说很难做到,有了局域网数据广播技术,技术人员就可以看到用户的电脑屏幕很快找到问题的所在。在计算机教学实验中,指导老师的口头讲解往往不能使学生充分理解,这时就需要将老师的电脑屏幕图象实时传送到学生的电脑主机上,以方便学生的理解。 为了满足这些用户的需求,我们做了这个系统,希望能取得应有的效果。1.3 设计方法屏幕广播原理是先将发送方的屏幕信息截取下来,采用快速压缩算法压缩,然后分割成许多小段,一段一段地通过网络发送出去,接收方从网络上接收信息,然后一段一段地组织起来,解压后再送到显示屏上因为发出的信息需要多台计算机同时接收,因此采用广播数据报方式,本程序使用visual c+6.0开发,用微软的windows socket进行广播通信。实现此项目,用的方法是,服务器端与客户段分别从casyncsocket与csocket派生出新类,然后再服务器端重新定义onsend函数,利用此函数不断对截取的屏幕信息快速压缩,然后发送,每发送完一屏信息,则截取下一屏信息,每隔一段时间(几毫秒)就用asyncselect(fd_write)触发一次发送事件,调用onsend函数发送屏幕数据。在客户端重新定义onreceive函数,在这个函数中不断的接收服务器端发送过来的数据,然后进行解压缩,每接收完一屏的信息则在屏幕上显示。利用asyncselect(fd_read)每隔一段短时间触发一次接收事件,调用onreceive函数不断接收数据显示。通过服务器端不断的截取屏幕发送数据,客户不断的接收显示,在客户端便看到了服务器端连续的动作。1.4 功能局域网广播功能,采用mpeg4压缩算法,实时直播教师教学画面和现场实况,还可用于教学实物展示等功能。 视频屏幕同步广播,就是将传统多媒体网络教室的屏幕广播功能与视频广播教学的功能结合。教师在屏幕广播的同时,可以将教师端的视频图像同步广播给学生。教师端可以将本地视频窗口从屏幕上隐藏起来,相对增大了教师机屏幕的可视范围,同时也实现了教师机屏幕的美观整洁。 网页同步浏览教师在上课时,不免要借助网上资源、课件素材、vod点播等进行辅助教学,视频多媒体网络教室提供网页同步浏览功能,在教师的控制下,轻松实现教师和学生同步浏览相关的网页、数字图书馆、资源库、vod节目等等内容。屏幕广播功能主要用于将教师机的电脑屏幕画面信息实施显示给全体、群组或单个的学生观看。利用这种广播教学功能,学生能够直观地看到教师的操作方式,从而快速掌握学习目标。2 visual c+6.0及winsock2简介2.1 visual c+6.0简介visual c+6.0是美国microsoft公司于1998年推出的基于windows 98操作平台、功能强大的编程工具,它具有友好的图形化用户界面、面向对象的程序开发、完善而又丰富的库函数以及internet网络应用等诸多功能,使广大程序开发人员能够利用它开发出各种有用的程序。2.1.1什么是visualc+集成开发环境visual c+是microsoft公司提供的在windows环境下进行应用程序开发的cc+编译器。相比其它的编程工具而言, visualc+在提供可视化的编程方法的同时,也适用于编写直接对系统进行底层操作的程序。随visual c+一起提供的microsoft基础类库(microsoft foundation class library,简写为mfc)对windows 9xnt所用的win32应用程序接口(win32 application programming interface)进行了十分彻底的封装,这使得windows 9xnt应用程序的开发可以使用完全的面向对象的方法来进行,从而能够大量地节省应用程序的开发周期,降低开发成本, 也使得windows程序员从大量的复杂劳动中解脱出来,而且并没有因为获得这种方便而牺牲应用程序的性能。visual c+6.0是microsoft公司出品的基于windows的c+开发工具,它是microsoft visual stutio套装软件的一个有机组成部分, 在以前版本的基础上又增加或增强了许多特性。visual c+软件包包含了许多单独的组件,如编辑器、编译器、链接器、生成实用程序、调试器, 以及各种各样为开发microsoft windows下的cc+程序而设计的工具。visual studio把所有的visual c+工具结合在一起,集成为一个整体,通过一个由窗口、对话框、菜单、工具栏、快捷键及宏组成的和谐系统,你可以观察和控制整个开发进程。该环境几乎就是visual c+中所能“看见”的所有东西。所有其他事情都在其管理下在幕后运行。一般情况下,术语visual c+既指整个产品,又指它的开发环境。2.1.2 visual c+开发环境的窗口从visual studio的光盘中运行visual c+安装程序,完成之后, 就可以从“开始”菜单中运行visual c+6.0。通常,visual studio的外观如图a11所示。图a11 visual studio集成开发环境的外观 visual c+带有一个预先定义好的工具栏集,单击便可以访问它们。如果需要更多的工具按钮,可以用自己设计的定制工具栏来增大工具栏集。当鼠标停留在工具栏按钮的上面时,按钮凸起,主窗口底端的状态栏显示了对按钮的简短描述;并且,如果光标停留时间长一些,就会出现一个小的弹出式的“工具提示”窗口, 它包含了按钮的名字。visual c+菜单栏是一种特殊形式的工具栏。只有在全屏模式下才能隐藏菜单栏,其他情况下,它就像一个普通的工具栏。当鼠标停留在visual c+的菜单栏上时, 菜单名像工具栏一样呈凸起状。当单击菜单名拉下菜单时,菜单名看起来像是凹进屏幕里。菜单打开后,把鼠标从一个菜单名滑动到另一个会拉下另一个菜单。visual c+环境几乎总是会响应鼠标右键的单击。当单击鼠标右键时,通常是显示一个与当前鼠标所指向位置相关的弹出式菜单,也称上下文相关菜单。甚至当visual c+没有打开窗口时,在空白区右击也会产生一个菜单,其中含有使窗口可见和调整工具栏开或关的命令。在工具栏上除标题栏外的任何地方单击右键,可打开同样的菜单。工作时试一试右键,你会发现许多其他的快捷方式。除许多对话框外,visual c+显示两种类型的窗口,即文档窗口和停靠窗口。文档窗口是一般的带边框子窗口,其中包含有源代码文本和图形文档。window(窗口)菜单中列出了在屏幕上以平铺方式还是以层叠方式显示文档窗口的命令。所有其他的visual c+窗口,包括工具栏甚至菜单栏,都是停靠的。开发环境有两个主要的停靠窗口 workspace(工作空间)窗口和output(输出)窗口,它们通过view(查看)菜单中的命令变成可见的窗口。停靠窗口可以固定在visual c+用户区的顶端、底端或侧面,或者浮动在屏幕上任何地方。停靠窗口,不论是浮动着的或是固定着的,总是出现在文档窗口的上面。在屏幕上移动一个停靠窗口时,窗口看起来像是有主意似的,顽强地紧贴着visual c+主窗口的某一边界,或任何其他它接触到的定位窗口。有两个办法可防止这个问题发生。第一种办法就是在移动窗口时按住ctrl键,来暂时禁止它的停靠特征。第二种办法只对窗口有效,对工具栏无效,那就是禁止窗口的停靠能力,直到你再次使它生效。在窗口内部右击,从上下文相关菜单中,选择dockingview(停靠视图)命令来关掉命令的复选标志。 若关掉窗口的停靠特征,将影响窗口的外观。workspace窗口包含四个页面, 分别显示了项目各个方面的信息。workspace窗口中可显示的四个页面如下所述:classview(类视图):列出项目中的类和成员函数。 要在visual c+文本编辑器中打开类的源文件,双击列表中的要打开的类或函数名即可。resourceview(资源视图):列出项目的资源数据,如对话框和位图。同classview中一样, 双击resourceview列表中的数据项会打开合适的编辑器并加载资源。fileview(文件视图):列出项目的源文件。把源文件复制到项目夹中,不会自动把文件添加到fileview窗格的列表中。 你必须用project(项目)菜单中的addtoproject(添加到项目)命令明确地把新文件添加到项目中。data view(数据视图): 显示数据库项目的数据来源信息。dataview页面只出现在visual c+的企业版的数据库项目中,企业版遵循开放式数据库互连标准(odbc)来同数据源相连。在workspace窗口中的某项上右击, 会显示一个含有常用命令的上下文相关菜单。菜单中的命令取决于单击在哪一项上。例如,在fileview中右击某一个源文件名,会显示一个快速打开或编译文件的上下文相关菜单。你也可以开关单个workspace页面。在workspace窗口的底端的标签上右击来显示上下文相关菜单,然后从菜单中选择有关命令来使页面可见或消失。output窗口有多个页面:build(建立)、debug(调试)、find in files 1(在文件1中查找)和find in files 2(在文件2中查找)。build页面显示编译器、链接器和其他工具的状态消息。debug(调试)页面用于通知来自调试器的提示,这些提示对诸如未处理的异常和内存异常之类的情况提出警告。 应用程序通过api函数outputdebugstring或afxdump类库产生的消息,也显示在debug选项卡中。默认情况下,find in files搜索结果显示在output窗口的find in files 1页面中,但find ln files对话框中有一个复选项,允许你把结果转移到find ln files 2页面中。 output窗口中还可以包含其他的页面。2.1.3使用在线帮助visual c+提供了三个不同的在线帮助来源:由winhlp32查看器显示的标准hlp文件、对话框中的弹出式帮助信息和microsoft developer network library (msdn)。标准的hlp文件内容包括对开发环境的命令和窗口部件的帮助,当help(帮助)菜单的useextensionhelp(使用扩展帮助)命令被选中, 或visualc+不能为帮助主题确定明确的上下文时,按fl键就会显示这些帮助文件。在线帮助的第二个来源是弹出式消息,在开发环境中的许多对话框中都可以使用。选项卡标签和偶尔的提示会尽量解释对话框中的编辑框和按钮的用途,但当标签说明不充分时,总可以通过下列几种方法之一来寻求特殊控件的更多解释:把焦点移到该控件上,并按fl键;在该控件上右击,来打开whatsthis?。(这是什么)弹出式按钮;单击对话框右上角的问号按钮,然后单击要了解的控件。这三种方法效果完全一样,单击鼠标或按任意键时,这些消息就消失了。在线帮助的第三个来源msdn是在visual c+中工作时最常用的一个。msdn的内容组织具有很好的逻辑性,而且易于使用,但它也十分庞大。它可以为包括visual c+在内的整套visual studio开发环境工具提供在线帮助。 由于所有的工具都可以共享它,因此msdn是作为一个应用程序单独运行的,没有同任何单个开发环境结合在一起。要从visualc+中访问msdn, help菜单中的useextensionhelp命令必须没有被选中。 从visualc+的help菜单中选择contents(目录)、search(搜索)或index(索引)命令, 会使环境通过执行windowshhexe程序来运行msdn, 该程序从文件msdnvs98col中加载msdn目录列表(包含该文件的文件夹名反映了系统的定位设置)。msdn库提供的庞大信息集几乎涉及到微软编程工具和win32编程的每个方面。它包含了成千上万的主题,这些主题讨论了从visual c+到visual j+、从mfc到activex和从abs函数到z排列(zordering)的每件事情。msdn也包括了几本微软出版的重要书籍的全部文字,例如bruce mckinney的hardcore visual basic和kraig brockschmidt的insideole第二版。你也可以从中找到knowledge base(知识库)主题、 microsoft systems journal的最新论点、应用程序和设备驱动程序的开发工具包的全部文档、协议文件、范例源代码及其他许多东西。图a13展示了典型的msdn文章,以两窗格显示。 这两个窗格被设计成可以共同工作,左边的窗格允许你选择希望阅读的文章,而右边的则显示找到的文章。在右窗格中,每次都出现主题,它通过超文本链接连接到其他的相关主题。超文本链接也称超级链接,它是文本中一些特殊的词和短语。链接带有下划线,并以突出的颜色显示,这使得它们能很快被识别。当光标移动到msdn库窗口中的超文本链接上时,光标变成手的形状。在链接上单击,会从msdn窗口中清除掉当前主题,而代之以超文本链接所指向的新主题。这个效果很像在internet上浏览web网页。msdn窗口右窗格界面是非常友好的,如果需要阅读帮助文本的话,只要上下滚动窗口即可,此外,还可单击超文本链接,来查看感兴趣的主题。在窗口中,一次只显示一个主题,因此,窗口总是保持干净整洁。为了观察更多的区域,你可以通过单击hide(隐藏)工具按钮来关掉左边窗格,这样,整个窗口会由于保持固定的大小而收缩。你会发现,通过拖动左边或右边的垂直分隔条,更容易关掉或展开左窗格,这样也维持了msdn窗口的整体大小。窗口左窗格中有四个页面:contents、index、search和favorites(收藏)。每个页面提供一种不同的在线帮助浏览方式。(一)contents选项卡msdn的主题组依照标题和副标题的排列方式形成一个目录表,就像一本书的目录表一样,但它是交互式的:开始,可搜索一个大概的主题,然后逐层打开越来越明确的信息路径,来寻找你感兴趣的主题。当你头脑中有一个大概的主题, 而又想要看一看这个主题有哪些文档时, 目录表是非常有用的。从visualc+的help菜单中选择contents命令, 会打开msdn窗口,并显示目录列表。展开列表,直到找到要搜索的标题, 这可以通过双击标题(通过书形图标来识别), 或单击小的加号(+)按钮来完成。 目录列表中的文章标题位于一连串分层的末端,每个标题通过一张折起一个角的纸形图标来区别。双击列表中的标题,会在msdn窗口的右窗格中打开该文章。默认情况下,目录列表概括了msdn的全部文章。你可以通过把目录表的一个分支定义为一个信息子集,来缩短显示的目录。子集允许你集中一些特殊类别的主题。例如, 下面是创建一个只属于mfc参考的文章子集的步骤:图a13 msdn的外观(1)从msdn的view菜单中选择define subset(定义子集)命令。(2)在define subset对话框中,通过双击名为msdn library visual studio60的标题来展开目录列表。然后,展开visual c+ documentation(visual c+文档)和reference(参考)副标题,选择名为microsoft foundation class library and templates(microsoft基础类库和模板)的副标题,并单击add(添加)按钮来创建子集。(3)在define subset对话框的底部的编辑框中键人新子集的名字,然后单击save和close按钮。 使用在线帮助时,如要在各个子集间切换,只需从名为active subset(有效子集)的下拉列表中选择一个子集即可。(二)index选项卡搜索在线帮助时,通常首先要求助于index选项卡, 尤其当你对要寻找的主题相当清楚时。index选项卡显示了整套msdn文件的全面索引, 就像一本书的索引一样。要找到一个索引条目,在对话框顶部的编辑框中键人关键字即可。在你键人关键字的时候,列表框中的索引自动滚动到该关键字所在的位置。例如,msdn索引包含条目exception handling(异常处理)、handling exceptions(处理异常)和c+ exception handling(c+异常处理)。 因此,输入这些词条中的任意一个,都可以找到有关“异常处理”的主题。找到所要的索引条目后,双击它。如果该条目仅对应一篇文章,msdn会立刻显示它;否则会显示topic found(找到的主题)对话框, 其中列出了该条目指向的所有文章。通过双击列表中的标题, 或选中该标题, 并单击display(显示)按钮,均可在对话框中打开一篇文章。(三)search选项卡msdn帮助文件集不仅仅是被动的,它还包含一个搜索引擎,该引擎确定哪些主题文件包含了指定的词或短语,这个过程称为全文本搜索。全文本搜索从msdn的search(搜索)选项卡中启动,它允许你寻找包含指定词或短语的主题。msdn搜索引擎是非常优秀的,它能理解词的派生、通配符、布尔逻辑组合及near运算符。2.2 mfc简介mfc是一个编程框架,在visual c+ 中开发的很多程序要用mfc提供的框架及类库。本项目中用到的socket以及应用框架就是mfc提供的。mfc (microsoft foundation class library) 中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立windows下的应用程序,这是一种相对sdk来说更为简单的方法。因为总体上,mfc框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。microsoft visual c+提供了相应的工具来完成这个工作:appwizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;classwizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。2.2.1封装构成mfc框架的是mfc类库。mfc类库是c+类库。这些类或者封装了win32应用程序编程接口,或者封装了应用程序的概念,或者封装了ole特性,或者封装了odbc和dao数据访问的功能,或者封装了socket数据通信功能。(1)对win32应用程序编程接口的封装 用一个c+ object来包装一个windows object。例如:class cwnd是一个c+ window object,它把windows window(hwnd)和windows window有关的api函数封装在c+ window object的成员函数内,后者的成员变量m_hwnd就是前者的窗口句柄。 (2)对应用程序概念的封装 使用sdk编写windows应用程序时,总要定义窗口过程,登记windows class,创建窗口,等等。mfc把许多类似的处理封装起来,替程序员完成这些工作。另外,mfc提出了以文档-视图为中心的编程模式,mfc类库封装了对它的支持。文档是用户操作的数据对象,视图是数据操作的窗口,用户通过它处理、查看数据。本项目中,若通信模块直接用widows socket的api函数实现,或截取屏幕图像,在屏幕上显示位图等模块直接用api函数实现将会非常复杂而且容易出错,有了mfc提供的类,使用起来方便了很多。(3)对com/ole特性的封装 ole建立在com模型之上,由于支持ole的应用程序必须实现一系列的接口(interface),因而相当繁琐。mfc的ole类封装了ole api大量的复杂工作,这些类提供了实现ole的更高级接口。 (4)对odbc功能的封装 以少量的能提供与odbc之间更高级接口的c+类,封装了odbc api的大量的复杂的工作,提供了一种数据库编程模式。 2.2.2 继承 首先,mfc抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。这些类中,最重要的类是cobject和ccmdtarget。cobject是mfc的根类,绝大多数mfc类是其派生的,包括ccmdtarget。cobject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。所有从cobject派生的类都将具备或者可以具备cobject所拥有的特性。ccmdtarget通过封装一些属性和方法,提供了消息处理的架构。mfc中,任何可以处理消息的类都从ccmdtarget派生。 针对每种不同的对象,mfc都设计了一组类对这些对象进行封装,每一组类都有一个基类,从基类派生出众多更具体的类。这些对象包括以下种类:窗口对象,基类是cwnd;应用程序对象,基类是cwinthread;文档对象,基类是cdocument,等等。 程序员将结合自己的实际,从适当的mfc类中派生出自己的类,实现特定的功能,达到自己的编程目的。2.2.3 虚拟函数和动态约束 mfc以“c+”为基础,自然支持虚拟函数和动态约束。但是作为一个编程框架,有一个问题必须解决:如果仅仅通过虚拟函数来支持动态约束,必然导致虚拟函数表过于臃肿,消耗内存,效率低下。例如,cwnd封装 windows窗口对象时,每一条windows消息对应一个成员函数,这些成员函数为派生类所继承。如果这些
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 文化产业管理证书考试基础知识试题及答案分析
- 系统规划与管理师考试试题及答案的创新思维
- 卫生管理心理健康服务管理试题及答案
- 药剂学常见试题类型试题及答案
- 税务师考试常见困惑解答试题及答案
- 药物质量检测技术的进展试题及答案
- 文化产业管理证书知识要点
- 国学 试题及答案
- 字节产品面试题及答案
- 苏教版-五年级上册多音字
- 织码匠文字材料语言大纲目录
- 2023年全国测绘生产成本费用定额
- 2023年河南应用技术职业学院单招职业适应性测试题库及答案解析
- GB/T 28758-2012起重机检查人员的资格要求
- GB 18489-2001管形荧光灯和其他放电灯线路用电容器一般要求和安全要求
- 设计变更指令单
- 《高速铁路无砟轨道修理规则》第九章维修工机具、常备材料与作业车辆停留线课件
- 三年级《中国古代寓言故事》知识考试题库(含答案)
- 摩擦学发展前沿课件
- (通用版)医院收费员考试试题及答案
- 个人有关事项报告表(全)
评论
0/150
提交评论