c++开发库,C++开源

  c++开发库,C++开源

  在“商业应用”方面,C曾经是世界第一的开发语言,但是这个头衔已经被java抢走很多年了。由于今天的商业应用类型,它已经迅速从桌面应用转移到Web应用。在Java横行全球的时候,MS突然发力,想出了C#语言。曾经有一大批前C程序员认为C要沉了。没想到,这三年,C的生命力突然被严重增强。主要原因是开源软件、基础软件(比如并发原生支持,比如Android必须推出原生SDK)以及各种跨平台应用的出现。

  c开源库必须具备以下特征:必须是成熟的产品,跨平台的产品,相对通用的库。

  一.一般标准等级

  STL: C标准模板库,呵呵,也是开源的。

  Boost: C准标库,功能强大,江湖人称“磨炼”。

  3354-如果你掌握了它,你将漫游世界。

  Deelx(轻量级正则表达式解析类库,国产),boost中有一个强大的正则表达式解析库,但是如果你只想要一个表达式解析,不想拖进一个庞大的boost库中.支持国货。

  Iconv/IconvPP: (C形式编码转换函数库,

  第二,XML解析库

  C里面有很多XML相关的库,但其实大部分都是C库,用起来自然没那么轻巧。其中基于DOM的TinyXml和基于SAX的Xerces当然是。前者体积小,速度快,易于使用,适合数据交换。后者是一个全功能的XML解析器。

  我更喜欢TingyXml。小!

  Xerces-c:最强大的XML解析库,不仅仅是开源库中的,商业库中的也有。当然它的变种,IBM卖钱的版本,有几百兆的东西支持各个国家的代码转换,功能更强大,但是我觉得前面有一个小的开源的iconv就够了。

  根据博主http://www.cnblogs.com/wuqi924/archive/2010/11/18/1880950.html的一篇博文

  三个轻量级xml解析开源库:SlimXml、TinyXml和RapidXml对比如下:

  需要三个库来解析这个33,000行、1.5兆大小的xml。

  slim XML:22毫秒

  TinyXml:54毫秒

  rapid XML:4毫秒!

  总之,RapidXml真的很强大,比SlimXml快5倍以上。

  值得庆幸的是,SlimXml仍然比TinyXml快2.5倍,而不太注重效率。SlimXml走的是简单紧凑的路线,源代码只有32k,而TinyXml和RapidXml的源代码分别是147k和141k,这样的效率我们也能满意。因为这个库主要用于几十行或几百行小文件,所以解析非常大的xml超出了我的考虑范围。

  以及irrlicht(杰克灯引擎)的irrXMl解析器。

  Xsd (XML和c数据结构之间的XML绑定工具)。(商业使用要花钱)

  三。数据库资料库

  我更喜欢OTL(用于连接数据库)。其他的不用。

  四。多媒体类别

  —节选自别处,我自己,未使用

  SDL(用于游戏编程的简单直接媒体层/多媒体直接访问层)。

  对应的C开源库有ffmpeg、mpeg4、aac、avc、libmad、mpeg1、flac、ac3、ac3、matroska,著名的多媒体播放器TCPMP,世界著名的跨平台和嵌入式手持视频播放器、

  动词(verb的缩写)网络开发类别

  1.gSOAP SOAP协议的c支持库和代码生成工具。

  2.ACE网络编程研究是首选。

  ACE适合研究,大规模网络编程效率不足。大型网游几乎不使用ACE,很多使用ACE的项目也被证明效率低下。

  除了ACE,还有很多系统和网络编程的库。比如线程库方面,放大到C/C域就有ZThread,boost:thread,APR,CII。在文件和目录操作方面,boost也有相应的组件,而在网络编程方面,有socket和boost:asio。未来的C 0X几乎肯定会有网络编程和线程库。但目前,ACE仍然是系统和高性能网络编程的首选,其地位在一段时间内不会被撼动。它不仅是一个实用的库和框架集,也是设计模式的典型应用示例,值得学习。

  3.有博主回复POCO。我整理出来如下:

  c开源库,叫做POCO(Portable ComponentsPortable Components),非常方便易用。

  特点:

  *线程、程序同步和多线程编程高级抽象

  *流和文件系统访问

  *共享库加载类。

  *强大的日志和错误报告

  *安全性和加密

  *网络编程(TCP/IP套接字、HTTP客户端和HTTP服务器、FTP、SMTP、POP3等。)

  * XML解析(SAX2和DOM)和生成

  *配置文件和选项处理

  * SQL数据库访问(ODBC、MySQL、SQLite)

  可以运行的平台包括:

  * Windows

  *麦克OS X

  * iPhone操作系统

  *(嵌入式)Linux

  *惠普UX公司

  * Tru64

  * Solaris

  * QNX

  不及物动词图形用户界面库

  BCG Windows平台下的界面设计第三方库,可以让你的界面更好,更有时代感。

  wxWidgets:使用WxWidgets,开发者可以基于同一套代码为Win32、Mac OS X、GTK、X11、Motif、Wince等平台开发应用。wxWidgets库可供C、Python、Perl、C#/.NET等开发语言使用,与其他同样支持跨平台GUI开发的工具不同,基于WxWidgets的应用具有真正的本地化视觉和使用效果。原因是wxWidgets使用了各种平台的原生控件,而不是简单的通过地图模拟。WxWidgets应用广泛,免费,开源,成熟。

  QT————-界面(GUI)开发,支持C /Java/Python/…多种语言。跨平台。主要优点是API很优秀!Qt本身不仅仅是做GUI编程,实际上它基本上可以做OS-API能做的任何事情。网络/数据库/OpenGL/…都提供了完美的支持。

  传统上,Qt被认为是一个可移植的GUI库,但实际上Qt现在是一个相对完整的可移植的应用框架,它包含了大量的工具,如正则表达式、Web和Socket类、2D和3D图形、XML解析、SQL类等。甚至是完整的容器类库,但它的王牌是GUI。在目前的跨平台GUI框架中,Qt的成熟度最高,已经被一些大公司应用在关键产品中。由于Trolltech对Qt采用双许可模式,这款产品不仅可以获得开源社区的支持,还可以赚取足够的商业利润,因此其前景也是相当有信心的。

  Qt的主要技术特征是它的元对象模型。Qt实际上使用的不是标准C,而是标准C的一个扩展,通过元对象模型的扩展,实现了著名的信号/槽机制,这个机制也成为了Qt最大的特色和优势。

  其他类似Qt的可移植GUI框架还有wxWidget、FOX等。

  不及物动词计算机视觉

  OpenCV,英特尔的独立开源库。支持C/C /Python接口。这位感兴趣的朋友可以玩玩。如果结合OpenCV,可以做出一些外行都觉得很酷的程序。比如用它的人脸识别功能来处理你的摄像头,判断人的动作。

  七。图形和图像处理

  GDAL,处理大图像。如果GIS专业人员知道非常大的tif图像,他可以使用几GB的航空图像。GDAL对大图像读写的支持非常出色(像多波段图像都可以处理)。C/Java/Python支持…

  国外开源GIS软件QGIS使用gdal。

  c有很多图形图像库,如libjpeg、libpng、zlib、tiff、JBIG,还有最著名的开源图像处理软件Cximage。

  八。内存管理:boost:smart_ptr,Hans-Boehm GC

  C/C的内存管理是一个永恒的话题。一般来说,C的开发人员倾向于管理自己的内存。然而,令许多C开发者惊讶的是,C的一些领导人最近宣称,如果没有自动内存管理机制,用C编写安全可靠的大型程序是非常困难的。比雅尼斯特劳斯特鲁普还向中国开发者建议,如果没有特殊原因,应该在大型项目中使用自动内存管理工具。因此,今天的C开发人员应该积极学习和应用自动内存管理设施。

  说到自动内存管理,比较轻松的方法是boost:smart_ptr,而激进的方法是引入完整的GC机制。目前,Hans- Boehm GC无疑是最可靠的开源GC。作为一款保守的GC,Hans-Boehm GC在性能和功能上都非常出色。尤其是有了这个GC,仍然可以通过删除和释放来管理内存,对我们的编程习惯影响不大。

  九。密码和安全性:OpenSSL

  安全性是当今C/C编程中不可避免的重要问题。然而,编写安全的应用程序是非常困难的,尤其是与网络相关的C/C应用程序。可以说整个行业在这个过程中还处于“初级阶段”。特别是,它涉及大量与安全和密码学相关的算法和规范。如果让开发者自己去探索,他们的工作量和难度都是不现实的。因此,只有借助可靠的相关程序库,才有可能提高程序的安全性。在这方面,OpenSSL是目前最好的选择,其全面可靠的内容已经成为业界标杆。然而,由于安全编程固有的复杂性,即使使用penSSL,开发工作仍然非常繁琐。所以我们也希望尽快看到一个更简单易用的C/C安全程序库。

  X.矩阵计算:MTL

  自1995年以来,C语言在科学计算领域取得了重大突破。这主要得益于模板技术的先进应用,使得C在科学计算的性能上有了长足的进步,涌现出大量优秀的C科学计算库。比如闪电战,POOMA,MTL,Boost:uBLAS。其中,MTL在功能丰富度、性能、开发支持度、成熟度等方面都是佼佼者,可以优先考虑。值得一提的是,2002年,MTL与后来被英特尔收购的KAI C合作,一度在性能评测中击败FORTRAN。

  XI。中间件

  1.分布式对象中间件:ICE

  ICE是分布式对象中间件领域的后起之秀,大致可以看作是CORBA的“改进版”。目前在一些大型项目中使用,包括波音公司主持的下一代陆军作战系统。

  ICE的一个特殊价值是其代码的示范性意义。由于ICE的出现较晚,开发人员系统地应用了新的C编程风格,因此它成为了学习C代码的好对象。

  2.面向消息的中间件:ZeroMQ,它总结了如下几个特性:

  1)在消息系统中,它几乎是最简洁的,只是一个简洁的API,被N种语言绑定,没有专用的服务器;

  2)性能优异,远高于RabbitMQ、ActiveMQ、MSMQ等。

  3)适用于分布式和并发应用。

  十二。正则表达式:boost:regex

  正则表达式是编程中最强大的工具之一。c的正则表达式支持一直是软肋。2001年左右,boost中出现了regex库,初步解决了这个问题。但是最初的regex在效率和可靠性上都存在一些问题,经过大规模的改造,达到了比较完善的程度。

  其他备选还有C语言的pcre库,Qt的QRegExp类等。

  十三。配置管理:Lua

  随着软件系统的日益复杂,对可配置软件提出了越来越高的要求。传统上只通过命令行参数配置的系统,现在可能需要越来越多的方式和机制。目前越来越流行和被验证的方法是将Lua嵌入到C/C程序中,使用Lua程序作为配置脚本。这种方法的优点是Lua语言强大而灵活,可以适应复杂的配置需求。同时,Lua易于嵌入C/C程序,编译执行速度非常快,可以说是目前C/C程序配置管理的优秀解决方案。

  十四。3D游戏引擎:

  1.http://irrlicht.sourceforge.net/伊里希特

  它始于2003年,次年被评为最佳开源游戏引擎。官方C和。Net,扩展语言绑定包括Java、Perl、Ruby和Python。跨平台支持,使用了D3D、OpenGL和自己的API。

  优点:使用方便;跨平台;附带XML解析器;一个大社区;

  缺点:最近发展放缓。

  2.潘达3d http://www.panda3d.org/

  由迪士尼开发,卡内基梅隆娱乐技术中心支持。Python是官方推荐的语言。也支持c。

  优点:有用的社区;很多功能;定期开发;

  缺点:缺乏工具支持;非常差的文档;

  3.食人魔http://www.ogre3d.org/

  最好的图像引擎之一。它成立于2000年。推荐c语言。你需要非常熟悉编程。不适合新手。

  优点:功能很多;优秀的文档;大型社区;积极发展

  缺点:不适合初哥;只有图像引擎

  4.http://www.crystalspace3d.org/main/Main_Page水晶空间

  1997年发布,是用c写的开源游戏引擎,使用推荐c

  优势:良好的社区支持;很多功能;

  缺点:难学;

  5、delta 3d http://www.delta3d.org/index.php

  Delta3D是海军研究生院开发的全功能游戏和仿真引擎,得到了美国军方的巨大支持和丰厚投资。该引擎具有广泛的应用,例如开发用于培训、教育、娱乐和科学计算可视化中的建模和模拟的软件。

  其标准化设计集成了OpenScene Graph (OSG)、OpenDynamic Engine (ODE)、角色动画库(CAL3D)、OpenAL等一些知名开源软件和引擎。Delta3D通过对这些底层模块的隐藏、封装和集成,形成了更加方便的高层API函数库,使得开发者可以在必要的时候使用底层函数进行二次开发。Delta3D在软件系列的中间层。

  优点:适合各种3D游戏,仿真,非常全面。我一直在更新。

  缺点:参考文献少。中文文献也很少。很少有官方参考。但是阅读源代码可以加快理解和应用的速度。

  温馨提示:目前正在研究delta开源引擎,用它开发一个小游戏。

  顺便打个广告:delta3d交流qq群:12483772。欢迎加入,共同探讨。

  本文版权归作者kanego和博客公园所有,欢迎转载。但未经作者同意,必须保留此声明,并在文章页面给出原文链接,否则保留追究法律责任的权利。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • office2010激活密钥大全 怎么永久激活office2010
  • project2010产品密钥免费_project2010激活密钥永久激活码
  • c语言调用退出函数 c语言退出整个程序怎么写
  • c语言中怎么给函数初始化 c语言的初始化语句
  • c语言编写函数计算平均值 c语言求平均函数
  • chatgpt是什么?为什么这么火?
  • ChatGPT为什么注册不了?OpenAI ChatGPT的账号哪里可以注册?
  • OpenAI ChatGPT怎么注册账号?ChatGPT账号注册教程
  • chatgpt什么意思,什么是ChatGPT ?
  • CAD中怎么复制图形标注尺寸不变,CAD中怎么复制图形线性不变
  • cad中怎么创建并使用脚本文件,cad怎么运行脚本
  • cad中快速计算器的功能,cad怎么快速计算
  • cad中快速修改单位的方法有哪些,cad中快速修改单位的方法是
  • cad中心点画椭圆怎么做,cad轴测图怎么画椭圆
  • CAD中常用的快捷键,cad各种快捷键的用法
  • 留言与评论(共有 条评论)
       
    验证码: