C++ ResourcePool 是一个C++语言开发的通用的对象池,提供一个独立的类型无关的API。
更多C++对象池 C++ ResourcePool信息
libCVD 是一个高可移植和具备高性能的用于处理计算机视觉、图像、视频的C++库。其重点是提供简单高效的高质量的图形和视频处理方法。
示例代码:
#include <cvd/image_io.h> //Very cheap and cheerful X window with OpenGL capabilities #include <cvd/videodisplay.h> //OpenGL wrappers for various CVD types #include <cvd/gl_helpers.h> using namespace CVD; int main() { Image<Rgb<byte> > in; in = img_load("test_image.jpg"); //Create an OpenGL window with the dimensions of `in' VideoDisplay window(in.size()); glDrawPixels(in); glColor3f(1,0,0); glBegin(GL_LINES); glVertex(in.size()/2); glVertex(in.size()); glEnd(); glFlush(); std::cin.get(); return 0; }
更多C++多媒体处理库 libCVD信息
Xapian是一个用C++编写的全文检索程序,他的作用类似于Java的lucene。尽管在Java世界lucene已经是标准的全文检索程序,但是C/C++世界并没有相应的工具,而Xapian则填补了这个缺憾。
Xapian的api和检索原理和lucene在很多方面都很相似,但是也有一些地方存在不同,具体请看Xapian自己的文档:http://www.xapian.org/docs/
Xapian除了提供原生的C++编程接口之外,还提供了Perl,PHP,Python和Ruby编程接口和相应的类库,所以你可以直接从自己喜欢的脚本编程语言当中使用Xapian进行全文检索了。
更多C++检索引擎 Xapian信息
ChaiScript 是第一个也是目前唯一一个与C++的兼容性的脚本语言,受 EMCAScript影响的嵌入式的功能性语言。
更多C++脚本语言 ChaiScript信息
QuickFIX 是一个 C++ 实现的金融信息交换协议FIX的引擎
金融信息交换协议(FIX,Financial Information exchange)协议是适用于实时证券、金融电子交易开发的数据通信标准。它是由国际FIX协会组织提供的一个开放式协议,目的是推动国际贸易电子化的 进程,在各类参与者之间,包括投资经理、经纪人,买方、卖方建立起实时的电子化通讯协议。FIX 协议的目标是把各类证券金融业务需求流程格式化,使之成为一个个可用计算机语言描述的功能流程,并在每个业务功能接口上统一交换格式,方便各个功能模块的 连接。目前,欧、美主要发达国家都是FIX协会的成员。
FIX协议在欧美和亚洲地区的应用主要集中在买卖意向、成交揭示、交易定单、执行报告、结算划拨和市场新闻等信息交换上。
更多C++金融歇息交换引擎 QuickFIX信息
simplus 是一个用来构建仿真事件驱动、虚拟进程、消息、时间等等的C++类库。内置调试器,支持配置文件以及一个灵活的日志系统。可以用来为开发通讯、工程以及流量控制、游戏等程序的仿真器
更多C++类库 simplus信息
Standard Portable Library 是一个指针友好的 C/C++ 标准模板库的替代产品,它所提供的 API 跟 Java 或者是 .NET 的语言类似,包括公用的数据结构、网络操作接口以及数据库操作接口。
更多C++模板库 Standard Portable Library信息
Generic Memory Manager 是一个速度最快的跨平台的C++内存管理库,它是易用而且可扩展的。
更多C++内存管理库 Generic Memory Manager信息
G3D 引擎是为 C++ 的游戏开发者、研究人员或者学生准备的 3D 图形库,包含一组可靠而且高性能的通用三维示例。
下面是一些采用此引擎开发的三维游戏截图
更多的截图请看此处:http://g3d-cpp.sourceforge.net/screenshots.html
更多C++三维图形引擎 G3D Engine信息
Loki 是一个包含各种设计模式和方法实现的C++类库。
更多C++设计模式类库 Loki信息
Orocos (Open Robot Control Software ) 是一个用来构建实时控制软件的C++框架,适合开发机器人或者机器的控制软件。Orocos 实时工具包提供了一个基础框架,以快速开发可运行在实时操作系统的应用,如RTAI和Xenomai ,当然它也支持 Linux 系统。
更多C++实时工具包 Orocos信息
VXL (the Vision-something-Libraries)是计算机视觉研究和实现库集。它从TargetJr和IUE演变而来,目的是成为一个轻量级、速度快和持久的系统。它可移植到很多平台。
包含的库
◆ 数字化容器和法则:vnl
◆ 图像管理:vil
◆ 几何图形:vgl
◆ I/O控制:vsl
◆ 基本模板:vbl
◆ 功能库:vul
更多C++视觉库 VXL信息
SmartDB 是一个面向对象的数据库操作接口,集成了 SQLite 数据库。与微软的ADO对象类似,适合用在 C++/MFC 项目中。实际它就是一个 SQLite 的封装,只是你的程序只需要三行代码就可以打开 SQLite 数据库。
下面是一个示例程序:
更多C++数据库操作接口 SmartDB信息
GOBLIN图形库包括一个C + +类库的一个大型系列图优化的方法、GOSH以及TCL /Tk脚本语言的扩展。GOBLIN包括一个图形编辑器,并支持标准图形布局方法。
更多C++图形库 GOBLIN Graph Library信息
POCO C++ Libraries 提供一套 C++ 的类库用以开发基于网络的可移植的应用程序,功能涉及线程、线程同步、文件系统访问、流操作、共享库和类加载、套接字以及网络协议包括:HTTP、FTP、SMTP 等;其本身还包含一个 HTTP 服务器,提供 XML 的解析和 SQL 数据库的访问接口。
更多C++网络工具包 POCO C++ Libraries信息
中间件产品包 magicware 由 mwplus 和 magiclayer 以及其它一些工具软件组成(非开源)。mwplus (middleware plus) 是一套C++业务中间件及基础函数库,它提供了C++程序开发中常用的功能接口,可以用于各种应用程序的开发。在 mwplus 提供的底层功能上进行集成和整合,形成实现通用业务目标的业务中间件 magiclayer 。
mwplus 的主要特性如下:
用户不会过多关心底层网络连接,集中关心业务实现。框架提供策略接口,便于特殊情况下实现对网络事件的自定义处理。
客户端通过向服务端发送请求消息,服务端框架自动进行消息分派,开发人员只用专注于应用处理代码。
接口化的设计让程序框架具有良好的扩展性,框架功能可以根据应用特殊需要进行配置或重新实现,新增功能也容易添加到系统中;支持对python脚本的解释运行,可以便于将经常变化的业务逻辑采用脚本语言来实现,保持核心业务模块的稳定。
通过通用数据类型,可以实现对象的序列化,便于各种数据的存储、在网络上的传输。例如,可以不用编写任何代码,即可实现将内存对象保存到XML文件或者数据库,或者从XML文件或数据库恢复内存对象。
框架内部实现管理功能及统计功能,为建立功能强大的管理客户端提供应用及数据上的支撑。
整个软件包采用标准C++开发,支持在各种常见操作系统上的的开发和部署。
支持通用的日志输出;
支持多语言;
支持配置文件(ini或xml)的处理;
支持加解密操作;
支持压缩解压处理;
支持共享内存操作;
支持对XML的处理;
支持数据库操作。
Magiclayer中间件产品提供业务运行框架,可以基于此框架快速的进行业务模块的开发,加快开发周期,提高开发质量。 中间件产品magiclayer的主要特性如下:
通过配置文件的设计,中间件框架提供公告牌、服务器等多种运行模式,可以通过配置实现多种协议的兼容处理,统一业务服务的开发方式。
通过实现业务处理函数或类,注册到系统框架后即可工作,同时框架为业务开发提供了多种基础机制,方便业务开发。
Magiclayer中间件可以基于客户端直接连接服务器方式工作,也可以使用公告牌方式工作,实现分布式部署,以支持大量客户端并发访问服务器。公告牌支持对服务器的负载均衡,为建立高可用的应用系统提供基础。
客户端程序的开发可以开发包提供的基于C 的api进行,在此基础上进行的封装后可以使用几乎所有常见windows开发工具进行客户端程序开发。同时,软件包中还提供了以java方式进行客户端开发的开发包。
更多C++业务中间件 MagicWare信息
CWSS(C++ Web Service Server)是用于开发、集成、部署和管理大型分布式应用、网络应用和数据库应用的C/C++应用服务器。将C/C++的高效稳定和各种通讯标准(UDP/TCP/HTTP/SOAP等)引入大型网络应用的开发、集成、部署和管理之中。
CWSS拥有处理关键分布式应用系统问题所需的性能、可扩展性和高可用性。
CWSS所需的多种特色和优势,包括:
1)领先的标准
对业内多种通讯标准的全面支持,包括TCP、UDP、HTTP(POST)、WebService(SOAP),使分布式应用系统的实施更为简单,并且保护了投资,同时也使基于标准的解决方案的开发更加简便。
2)无限可扩展性
CWSS以其高扩展的架构体系闻名,包括内置SOTP通讯协议、访问用户管理和后台多种群集功能。
3)快速开发
CWSS独特的设计体系模式,可简化开发,加速投放市场速度。并可利用已有技能,迅速部署应用系统。
4)部署更趋灵活
一次开发,支持多平台运行,如Windows和Linux系统。
对客户端系统没有任何限制和要求。
5)体系结构
CWSS是专门为企业分布式网络应用系统开发的。企业分布式网络应用系统需要快速开发,并要求服务器端组件具有良好的灵活性和安全性,同时还要支持关键任务所必需的扩展、性能、和高可用性。CWSS简化了可移植及可扩展的应用系统的开发,并为其它应用 系统和系统提供了丰富的互操作性。CWSS拥有最高水平的可扩展性和可用性。CWSS内置标准通讯语言SOTP,轻松实现访问验证功能、负载平衡和群集功能,而且不需要任何专门的硬件或操作系统支持。
6)开放源代码
完全开放源代码,永久免费使用和更新;
更多C++应用服务器 CWSS信息
sqlitexx 是一个 C++ 程序用来访问 SQLite 数据库的接口类库。
更多C++语言的SQLite 接口库 sqlitexx信息
NetSieben SSH Library 是一个 C++ 语言的SSH客户端开发包,利用了 Botan 库赖实现加密功能,允许在 SSH 通讯过程中选择不同的加密算法,集成了 SFTP 的功能,并在多线程应用程序中测试通过。
下面地址中提供了一些例子用来演示如何使用该开发包编写 SSH 客户端程序
http://www.netsieben.com/products/ssh/code.phtml
更多C++语言的SSH客户端库 NetSieben SSH Library信息
Remote Object Access (ROXS) 是一个 C++ 的远程对象访问框架,类似于 CORBA 和 Java 的RMI 。它根据C++的头文件来生成代码进行双向通讯(回调方式),可以轻松实现对象的序列号。
更多C++远程对象访问框架 ROXS信息
Pystring是一组C++的函数通过 std::string 来匹配Python的String类的方法。它不需要或使用 Python 解析器,提供了方便和符合 C++ 使用习惯的通用字符串操作方法,而这些方法时不包括在标准C++库的。这在同时使用 C++ 和 Python 在处理字符串的时候是非常有用的。
Pystring is a collection of C++ functions which match the interface and behavior of python’s string class methods using std::string. Implemented in C++, it does not require or make use of a python interpreter. It provides convenience and familiarity for common string operations not included in the standard C++ library. It’s also useful in environments where both C++ and python are used.with std::string.
更多C++中的Python字符串处理 pyString信息
gSOAP一种跨平台的C和 C++软件开发工具包。生成C/C++的RPC代码,XML数据绑定,对SOAP Web服务和其他应用形成高效的具体架构解析器,它们都受益于一个XML接口。 这个工具包提供了一个全面和透明的XML数据绑定解决方案,Autocoding节省大量开发时间来执行SOAP/XML Web服务中的C/C++。此外,使用XML数据绑定大大简化了XML自动映射。应用开发人员不再需要调整应用程序逻辑的具体库和XML为中心的数据,如 交涉DOM。
功能和特点
可移植性:gSOAP支持大多 数平台,包括嵌入式系统和小系统(例如嵌入式Symbian,Palm)。可移植性测试Windows(98,XP,Vista),Linux,Unix 系统,Mac OS X,Solaris,HP-UX,AIX,FreeBSD,TRU64,Irix,QNX,VxWorks。
稳定性:该软件已经成熟。自2001年以来经过几年的发展和试验。许多工业项目和产品都在使用该软件。
广泛的用户群:自2003年以来超过150000次下载,成千上万许可证/支持协议的公司,其中包括一些财富100强企业。
所有功能于一身的软件包:独立第三方工具和库确保可靠的运行执行。
开源:可选择自由和商业许可。
C和C++的支持:支持纯粹的ANSI C和混合的C/C++应用开发。
综合XML数据绑定: gSOAP是唯一的SOAP/XML工具包,支持一个纯粹的本地的C/C++数据绑定到XML。该工具包是以自动序列指针为基础的数据结构。
行业标准协议: SOAP 1.1/1.2 WSDL 1.1,v2和UDDI 。支持XML架构原始XSD结构类型等等。
传 输:HTTP/S, TCP, UDP, MIME (SwA), DIME (streaming), MTOM (streaming), HTTP1.0/1.1, IPv4, IPv6, RSS, XML-RPC, WS-Addressing, WS-Enumeration等
安全:HTTPS和WS安全性:认证令牌,数字签名。
速度:架构特定的编译器生成的代码速度快。基准测试表明速度优于最快的XML解析器。
占用内存小:客户端应用程序总运行内存占用很小。内存管理使用垃圾收集,可以自动清理。
许多例子:软件包,包括许多代码范例,其中包括独立的HTTP/1.1和HTTPS安全的Web服务器。
Web服务器整合:包括Apache_mod, IIS, WinInet, CGI, FastCGI。
更多C/C++ SOAP工具包 gSOAP信息
[AsmJit] 是個以 C++ 封裝的 JIT (Just-In-Time) Assembler,目前支援的硬體架構有 x86 與 x86_64,以 MIT X License 釋出。或許讀者對這樣的 Assembler 沒有太大的興趣,但專案卻跟 Google Chrome 瀏覽器引擎有些淵源。怎麼說呢?去年九月,Google 發佈了新一代網路瀏覽器 Chrome,當時幾乎佔據了各大資訊新聞的版面。發佈瀏覽器的同時,還伴隨了一本畫冊,以平實且幽默的和漫畫,闡述新推出的 Chrome 瀏覽器的各功能,包含其中嶄新的 JavaScript (ECMAScript) 執行引擎,搶了風采,讓同等級的瀏覽器頓時失色。由 Google 將其代號命名為 [V8],強調有如 V8 賽車的高速 JavaScript 執行效率,可見 Google 的開發決心。
// Create simple DWORD memory copy function for 32 bit x86 platform: // (for AsmJit version 0.8+) // // void ASMJIT_CDECL memcpy32(UInt32* dst, const UInt32* src, SysUInt len); // AsmJit library #include <AsmJit/AsmJitAssembler.h> #include <AsmJit/AsmJitVM.h> // C library - printf #include <stdio.h> using namespace AsmJit; // This is type of function we will generate typedef void (*MemCpy32Fn)(UInt32*, const UInt32*, SysUInt); int main(int argc, char* argv[]) { // ========================================================================== // Part 1: // Create Assembler Assembler a; // Constants const int arg_offset = 8; // Arguments offset (STDCALL EBP) const int arg_size = 12; // Arguments size // Labels Label L_Loop; Label L_Exit; // Prolog a.push(ebp); a.mov(ebp, esp); a.push(esi); a.push(edi); // Fetch arguments a.mov(edi, dword_ptr(ebp, arg_offset + 0)); // get dst a.mov(esi, dword_ptr(ebp, arg_offset + 4)); // get src a.mov(ecx, dword_ptr(ebp, arg_offset + 8)); // get len // exit if length is zero a.jz(&L_Exit); // Bind L_Loop label to here a.bind(&L_Loop); a.mov(eax, dword_ptr(esi)); a.mov(dword_ptr(edi), eax); a.add(esi, 4); a.add(edi, 4); // Loop until ecx is not zero a.dec(ecx); a.jnz(&L_Loop); // Exit a.bind(&L_Exit); // Epilog a.pop(edi); a.pop(esi); a.mov(esp, ebp); a.pop(ebp); // Return a.ret(); // ========================================================================== // ========================================================================== // Part 2: // Make JIT function MemCpy32Fn fn = function_cast<MemCpy32Fn>(a.make()); // Ensure that everything is ok if (!fn) { printf("Error making jit function (%u).\n", a.error()); return 1; } // Create some data UInt32 dst[128]; UInt32 src[128]; // Call JIT function fn(dst, src, 128); // If you don't need the function anymore, it should be freed MemoryManager::global()->free((void*)fn); // ========================================================================== return 0; }
更多C/C++编译器 AsmJit信息
GCC(GNU Compiler Collection,GNU编译器套装),是一套由 GNU 开发的编程语言编译器。它是一套以 GPL及 LGPL 许可证所发行的自由软件,也是 GNU计划 的关键部分,亦是自由的 类Unix 及苹果计算机 Mac OS X 操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。
GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada 与其他语言。
更多C/C++编译器 GCC信息