- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C++语言的跨平台软件开发的实现.doc
基于C++语言的跨平台软件开发的实现 在当下主流的编程语言当中,C++语言很好的保持高效的同时又加入了面向对象的特性以及自身的语言特性,但却不能像其他高级语言一样有着很好的可移植性,本文主要论述基于C++语言的多元化软件开发的设计与实现。 C++; 跨平台; 软件开发; 实现 【中图分类号】TP317.2 文献标识码:B文章编号:1673-8500(2012)12-0050-02 一个跨平台软件产品的开发和实践,关键在于对于开发过程的整体设计,在实现平台无关的代码的基础上还要对软件的配置与架构有合理的设计。而开发公共代码的内容涉及到多方面的问题,从源文件的文件格式,到C/C++语言的代码设计。在跨平台开发的过程中,需要根据各个差异的类别,建立一个能够被重复调用的代码库,同时还要在程序的运行过程中进行必要的安全检查,动态的控制不同平台之间代码的使用。 1 C++语言跨平台的开发策略 在开始代码编写之前,首先要规定源代码在文本编写过程中的编辑策略,在不同的操作系统上创建和编辑文本文件必然涉及到多种类型的行结束符。当在这些平台之间编写源代码的时候,这就成为了一个问题。如果一个文件是在Unix下创建的,那么在Windows计算机上很可能不会被正确的编辑。此外,不同平台间tab的间距也有着不同的定义,因此在编写代码的过程中,需要规定统一的tab与行结束符,从而保证代码的阅读性在各个平台间都是相同的。所以在开发的初期需要针对这个问题制定两点规则: 1.1 统一使用4个空格键来代替tab,也就是\t格式 1.2 Windows下的源文件代码需要存储成Unix的文件格式,或是在Windows下的文件编写完成之后,通过dos2unix命令实现文本格式的转换。 目前来讲,这部分的问题还有一个更简易的解决方式:使用Emacs编辑器,Emacs虽然没有久远的历史,但是它已经迅速的得到了广泛的应用,原因在于其独特的开发方式,编辑人员几乎可以完全放弃使用鼠标而专心使用键盘来完成自己的代码,同时它对几乎任何一个平台都能给予很好的支持,同时非常易于安装,甚至有很多的开发人员视Emacs为一种编写源代码的理念,而远超于一个简单的编辑器。 2建立统一的工程包 一个多元平台下的软件产品在开发过程中需要保证各个源代码以及配置文件,依赖库的移植性,只有这样才可以做到:当一个Linux平台下开发的工程包被移植到另外一个平台上时,可以直接对其编译或者使用。否则,如果一个工程包在移植到其他平台以后还需要进行大规模的编辑这样不但影响了软件开发的进度,同时也会影响该项目在各个平台之间的一致性,长期的改动将会直接导致项目没有任何的维护性,因此,在整个开发周期中必须保证各个平台下所使用的开发工程包是完全统一的。 在SandBox中包含这样几种文件夹,它们分别是一个封装好的代码库,它们专门用来处理那些平台相关的软件;源文件程序库,其中包含了该软件开发的源程序;第三方依赖库集合;另外就是配置文件集合和日志管理文件,当然,在各个文件夹中还会包含着Make策略所涉及到的各个Make文件。在它们其中,大部分的文件所完成的功能是统一的,只是根据不同的平台有着不同的规则而将它们区分开来,形成了多种配置文件和依赖文件。 3建立跨平台的代码库 由于C++语言的语言特性,以及其标准在各个平台、编译器上的不同定义,跨平台的软件开发需要更合理的规划代码,抽象是真正实现代码跨平台的核心,没有适当的抽象很难构建一个跨平台的应用程序。抽象在C++里普遍的使用,c++的标准模板库和Boost是两个最好的例子。Boost标准类随着其不断地被完善,可以帮助一个跨平台的产品解决操作系统库内各个接口的差异,但是这些标准还不能够解决所有的问题,一方面它目前并没有涵盖所有的范畴,此外毕竟由于它们的封装,使项目又增加了不确定性,而在STL中并不是所有的模板都有着很高的可移植性,在可能的情况下,我个人更倾向于自己手动编写所需要的各个抽象类。进一步而言,就算这些标准库可以完全的被使用,然而这对于一个跨平台的软件项目来说还是远远不够的。所以,在项目开发过程中需要编写自己的抽象库,随着开发的不断进展,根据需求的变化结合C++语言的语言特性设计这部分代码。 4工厂模式与单例模式的实现 在跨平台开发的过程中,这两种设计模式的使用有着重要的意义,C++语言的代码有着诸多的特性不被多元化的平台所共享,因此,通常需要在代码库中抽象出这一部分的代码,然后分别在Windows,Linux平台下通过各自的方式实现功能,再通过条件编译来动态的调用不同平台下的函数;而单例模式则是为了保证每一个类的在程序中只有一个对象被实例化,防止过多的实例间产生的冲突。这两种设计模式的实现则需要利用面向对象的思想,通过继承来实现这种多平台的多态性,而除此之外,跨平台的工
您可能关注的文档
最近下载
- (2024)行政执法人员政治理论和法律知识考试试题及答案.docx VIP
- 人教版七年级下册数学不等式与不等式组计算解答题训练.docx VIP
- 机房动力环境设计方案 .pdf VIP
- 人防工程质量监督简述.ppt VIP
- (新版)环境监测员(技师)职业技能鉴定考试题库资料(含答案).pdf
- 《疫苗临床试验现场实施质量控制工作规范》(TCAV 009-2024).pdf VIP
- 2024-2025学年小学科学五年级上册教科版(2024)教学设计合集.docx
- 风机基础二次灌浆技术交底.docx VIP
- 战略与投资发展部岗位职责.doc VIP
- 20.智慧变电站技术规范 第20部分:动环系统.pdf VIP
文档评论(0)