一系列C++类库,类似Java类库,.Net框架,Apple的Cocoa
侧重于互联网时代的网络应用程序
使用高效的,现代的标准ANSI/ISO C++,并基于STL
高可移值性,并可在多个平台下可用
开源,并使用Boost Software License发布
不管是否商用,都完全免费
Poco库概览
特性:
DynamicAny与Any类
Cache框架
基于OpenSSL的密码系统
日期,时间类库
事件和通知框架
FTP客户端
跨平台的文件系统类库
HTML表单类库
HTTP客户端和服务端(支持SSL),C++ 服务器页面编译器
日志框架
多线程框架(线程池,活动对象,工作队列等)
POP3客户端类库
跨平台,一次编写,多平台编译和运行
进程管理和进程间通信类库
反射框架
基于PCRE的正则表达式
SMTP客户端类库
数据库访问类库(SQLite,MySQL, ODBC)
支持SSL/TLS,基于OpenSSL
动态类库加载
先进的内存和指针管理(Buffer, Pool)
Socket类库
网络数据流类库,支持Base64,HexBinary编解码,压缩等等
字符串格式化和其它字符串工具类库
TCP服务器框架(多线程)
文本编码和转换
Tuples
URI支持
支持UTF8和Unicode编码
UUID生成器
XML生成和解析器
Zip文件 *** 作类库
Poco的使命
Poco是一个强大的类库,并易于构建自己的应用程序
Poco帮助你创建跨平台的应用程序(一次编写,多平台编译和运行)
模块化和可扩展,可应用于嵌入式到企业级程序
提供全面,易懂的编程接口
使用C++语言,快速且高效
Poco崇尚简易
在设计,代码风格和文档上保持一致
Poco强调代码质量,包括可读性,综合性,一致性,编码风格和可测试性
Poco使得C++编程更加容易
指导方针
高度关注代码质量,编码风格,一致性,可读性
高度关注测试
注重实用性
基于现有的,可靠的组件开发
版本历史
Summer 2004: Günter Obiltschnig started development
February 2005: First release on SourceForge
(Release 0.91 under Sleepycat license)
May 2005: First contributions by Aleksandar Fabijanic
January 2006: Release 1.0
March 2006: Release 1.1
July 2006: Moved to Boost license, POCO Community Website
August 2006: Release 1.2
May 2007: Release 1.3
July 2010: Stable Release 1.3.7,
about 20 contributors, used in 100s of projects
支持平台
Microsoft Windows
Linux
Mac OS X
HP-UX, Solaris, AIX*
Embedded Linux (uClibc, glibc)
iOS
Windows Embedded CE
QNX
Poco应用场景
创建自动化的中间件和设备
工业自动化和工业设备
流量控制系统
健康系统
测量,数据收集和测试系统
消费电子产品和家庭自动化产品
测量
航空交通管理系统
VoIP
票务和入口控制系统
包装应用程序
Poco的优势
全面的,完整的C++框架,可减少开发工作,快速让产品走向市场
易学易使用,以及相当多的示例代码和良好的文档
原生的C++代码,性能优秀,低内存占用
平台无关,一处编写,跨平台编译和运行
大多数情况下,可以开发机上完成开发和调试工作
可以非常容易的迁移到新平台
编译
下面简单介绍一下方法,以 vs2010 为例。
第一种方法:
(1) Poco 根目录下有build_vs100.cmd和buildwin.cmd这两个批处理文件, 我们得修改一下它们。
把build_vs100.cmd 修改为以下内容:
@echo off
if defined VS100COMNTOOLS (
call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vsvars64.bat")
buildwin 100 build all both x64 samples
红色的部分是vsvars64.bat的路径,具体要看本机的安装位置。这里因为是要编译X64,所以要修改环境。
蓝色部分是执行编译时候的参数(注意X64的X要小写)。参数的具体说明为:
buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [TESTS] [TOOL]
VS_VERSION:71|80|90|100|110
ACTION:build|rebuild|clean
LINKMODE: static_mt|static_md|shared|all
CONFIGURATION: release|debug|both
PLATFORM: Win32|x64|WinCE
SAMPLES: samples|nosamples
TESTS: tests|notests
TOOL: devenv|vcexpress|msbuild
具体的参数选择根据需求。
如果不需要 NetSSL_OpenSSL 和 MySQL ,此时保存后就双击它就行了。 它会自动编译好各种库。
如果要NetSSL_OpenSSL 这个库则打开buildwin.cmd文件:
设置 openssl 的路径,如:
set OPENSSL_DIR=c:\OpenSSL-Win64
set OPENSSL_INCLUDE=%OPENSSL_DIR%\include
set OPENSSL_LIB=%OPENSSL_DIR%\lib%OPENSSL_DIR%\lib\VC
set INCLUDE=%INCLUDE%%OPENSSL_INCLUDE%
set LIB=%LIB%%OPENSSL_LIB%
注意,如果要 Poco 中的 MySQL 库 还得安装. Mysql
编辑好后,双击 build_vs100.cmd执行编译。完成后会在Poco根目录下的lib64中看到编译好的库。在bin64中有编译好的dll。
第二种方法(适合熟悉命令行的用户):
按需求修改完buildwin.cmd文件后,使用vs2010的Tools中“Visual Studio x64 Win64 命令提示(2010)”命令,进入命令行状态。转到Poco所在的根目录,直接输入命令:
buildwin 100 build all both x64 samples
最后需要注意的地方:
上述方法完成编译后,关于Data的MySQL、ODBC、SQLite三个库没有生成(原因不详),需要单独编译,在此以MySQL为例记录一下编译过程。在\Data\MySQL文件夹下,找到MySQL_vs100.sln文件,打开。
打开的工程是win32的,需要改为X64。在C++包含目录中添加本项目的include文件夹,例如:“C:\poco-1.5.1-all\Data\MySQL\include”,还要添加安装的MySQL的include文件夹,例如“C:\Program Files\MySQL\MySQL Server 5.6\include”,在库目录中添加所需库的路径,例如“C:\Program Files\MySQL\MySQL Server 5.6\lib”。
poco是国内最大的原创图片互动社区,03年由idg投资成立。公司总部位于广州,并设有北京、上海分公司。"MyPOCO个人空间",是POCO旗下的核心产品。社区应用
POCO图片分享社区,最为活跃的版块是摄影社区,美食社区,旅游社区,宠物社区,汽车社区,以及电子杂志社区。
2手机应用
除了POCO平台外,围绕图片的无线分享,开发了POCO相机、POCO美人相机、POCO亲子相机、POCO美食相机、印象摄影、POCO照片等手机应用APP,并曾获得过iPhone苹果店多项排行第一。
3成长
*2007年艾瑞新经济年会中获得“2007 个人空间类最具发展潜力企业奖”
*“中国2006年度创新传媒人物与创新传媒推选”活动获得2006年度十大创新传媒
*“2006华南WEB2.0年度评选活动”POCO获得全场大奖"年度华南最佳WEB2.0网站”
* POCO荣获著名创投研究机构清科颁发的“2006中国最具投资价值企业50强”
* 获得2006年首届中国品牌媒体高峰论坛暨品牌媒体联盟成立大会评出的 “中国新媒体品牌10强”
*“2005年度中国国产优秀软件”评选活动POCO软件位列“十大优秀个人软件”第一名。
* 首届中国传媒创新年会,POCO荣获最具发展潜力创新传媒奖。
*iResearch艾瑞市场咨询调查结果显示,在网民最常看的数字杂志中,《POCOZine》在内容量、版面风格、多媒体元素、互动元素、广告满意 度调查中,均位居第一。
*《POCOZINE》为中国地区下载量第一的原创电子杂志,月下载量高达690万册。
*《印象》杂志是国内发行量最大的创意视觉杂志,为广东、广西、江西、湖北等十多个省级摄影协会指定电子杂志。
* POCO旗下的摄影站、美食站、电影站已经成为各种领域中排名第一的垂直网站。
* 2003 POCO广州数联软件技术有限公司成立
4电子杂志
《 POCOZINE 》(月刊)
05 年 1 月 25 日 面市的 POCO 第一本电子杂志,中国地区第一本“高端、时尚、互动”的白领休闲杂志。
iResearch艾瑞市场咨询调查结果显示,在网民最常看的数字杂志中,《POCOZINE》在内容量、版面风格、多媒体元素、互动元素、广告满意度调查中,均位居第一。
《POCOZINE》为中国地区下载量第一的原创电子杂志,第十六期月下载量高达690万册。
内容以女性、摄影、美食、影视、音乐五个部分构成,互联网上唯一定位于以网友原创为主的“时尚多媒体月刊, 陆续获得了欧莱雅、麦当劳、宝洁、佳能、三星、Moto、Nike、优派、箭牌、统一、日产、大众等重量级的广告客户的投放,并获得了多家4A 广告公司的认可。
《印象》(月刊)
05 年 4 月 25 日, POCO 推出了第二本电子杂志,这是国内第一本创意视觉时尚电子杂志,推出一年后,单月下载量已经超过 350 万册。
《印象》杂志是国内发行量最大的创意视觉时尚杂志,为广东、广西、江西、湖北等十多个省级摄影协会指定电子杂志。
内容以影像视觉、 旅游、名人专访、城市建筑、创意领域为核心, 以影像视觉传播为内容,开创了互联网时段最举创意和视觉冲击力的原创电子杂志, 陆续获得了上百个世界五百强产品广告客户的投放,并获得了多家 4A 广告公司的认可。
Poco旗下电子杂志软件PocoMaker
PocoMaker(魅客)是一款完全免费的电子杂志制作工具。
PocoMaker界面
他可以制作电子相册、电子杂志、电子读物等多种个性电子读物。
5计算机语言
POCO:简单传统CLR对象(Plain Old CLR Object / POCO)
6绘师
姓名:ポコ(poco)
c79
同人社团名:asahiage(あさひあげ)
PIXIV ID:76266
简介:日本兵库县出生现居于埼玉县的插画家ポコ(poco),曾主持参与<<电击文库MAGAZINE>>第四到六期的插画讲座连载。近年活跃于ACG界,同人创作画集、漫画、轻小说插画、游戏人设。代表作:<<死后文>>,<<三坪房间的侵略者>>
7作品
同人志
(C64)Asahiage_(Poco) FORCE System
(C71)Asahiage_(Poco) Force Chronicle
(C74)Asahiage_(Poco)Mini_Skirt_chainsaw
(C80)Asahiage (Poco) Unicorn Girls
(C78)Asahiage_(Poco)CHAIN_SAW
(C75)ポコ(Poco)しらたま団子っ1
(C79)ポコ(Poco)しらたま団子っ2
(C81)ポコ(Poco)しらたま団子っ3
(C82)Asahiage_(Poco)lightningforce CHAIN:SAW
(C83)ポコ(Poco)しらたま団子っ4
(C85)ポコ(Poco)しらたま団子っ5
轻小说插画
シゴフミ-Stories of Last Letter(死后文) (雨宫谅·著 ポコ·绘 电击文库)
クリスナーガ (小林 三六九·著 ポコ·绘 电击文库)
六畳间の侵略者!? (三坪房间的侵略者) (健速·著 ポコ·绘 HJ文库)
其他:责められ少女絵巻 (一迅社)
游戏:
MATERIAL BRAVE(マテリアルブレイブ) (制作公司:GIGA戏画)
小资料
数位板:wacom Intuos4L
常用软件:photoshop sai painter 偶尔会根据喜好使用freehand
8应用程序编辑
简介
POCO C++ Libraries 提供一套 C++ 的类库用以开发基于网络的可移植的应用程序,功能涉及线程、线程同步、文件系统访问、流 *** 作、共享库和类加载、套接字以及网络协议包括:HTTP、FTP、SMTP 等;其本身还包含一个 HTTP 服务器,提供 XML 的解析和 SQL 数据库的访问接口。
POCO C++库是开源的用于简化和加速C++开发面向网络、可移植应用程序的C++库集,POCO库和C++标准库可以很好的集成并填补了C++标准库缺乏的功能空隙。POCO库的模块化、高效的设计及实现使得POCO特别适合嵌入式开发。在嵌入式开发领域,由于C++既适合底层(设备I/O、中断处理等)和高层面向对象开发,越来越流行。当然POCO也准备好了面对企业级挑战。
包含4个核心库及一些附加库. 这4个核心库是: Foundation, XML, Util 和 Net. 附加库中其中2个是NetSSL和Data,NetSSL为Net库中的网络类提供SSL支持, Data库提供访问不同SQL数据库的一致性接口。 POCO以网络中心的跨平台C++软件开发,就像苹果的Cocoa之余Mac开发, 或Ruby on Rails 之余Web开发—强大而不失简单有趣的用于创建应用的平台. POCO 严格使用标准ANSI/ISO C++创建, 包含标准库. 程序库的贡献者试图在使用C++高级特性、易于理解的类、干净的代码、连续及易于维护间得到平衡.
基本库
Foundation库是POCO的心脏.它包含底层平台的封装层,也包含经常使用的工具类和函数. 包含规定字节大小整数类型, 转换整数与字节顺序的函数, Poco::Any 类 (基于 boost::any), 错误处理及调试工具, 包含各种异常类和支持断言. 同时也包含一些内存管理类, 包括基于引用计数的智能指针,和用与buffer管理及内存池的类. 对于字符串的处理, POCO包含一些函数和其他的东西, 串trim *** 作, 大小写敏感的比较和大小写转换. 以类对Unicode的基本支持:转换文本的不同编码, 包括UTF-8 和 UTF-16. 支持格式化和解析数字, 包括sprintf 的类型安全变量. 还提供了基于著名的PCRE 库的正则表达式。
POCO提供多种变量的日期和时间的处理类。在访问文件系统方面, POCO 拥有Poco::File 、 Poco::Path 类, 和 Poco::DirectoryIterator 类.在许多应用程序中,其中一部分需要通知其他部分自己这边发生的事情. POCO中的Poco::NotificationCenter、 Poco::NotificationQueue 和 events (类似 C
# events) 使这种工作变得容易. 下面的示例显示如何使用POCO的 events. 示例中, 类Source 的公共event命名为theEvent,该event有一个int型参数. 用户可调用 *** 作符 +=订阅改事件和调用-= *** 作符取消订阅, 同时传递对象指针和成员函数指针.事件可通过调用() *** 作符发射, 见 Source::fireEvent().
POCO 中的stream类已经提到过. stream作为Poco::BinaryReader 和 Poco::BinaryWriter 的参数用于写二进制数据到流中, 自动、透明地处理字节顺序问题.
在复杂的多线程应用中,查找问题和bug的仅有方式就是编写广泛的日志信息. POCO 提供强大可扩展的日志框架,该框架支持过滤、路由到不同的通道以及格式化日志信息. 日志消息可以写入console、文件、Windows 事件日志、Unix的syslog后台或网络中.如果POCO提供的通道不够使用,可以很方便的使用新类扩展日志框架.
对于在运行时装载(及卸载) 共享库, POCO提供底层的Poco::SharedLibrary 类. 基于它的Poco::
classLoader 类模板和支持框架, 允许在运行时动态装载和卸载C++类, 类似于JAVA和.NET. 类装载框架使得以平台无关的方式编写应用程序插件成为小菜一碟。
最后, POCO Foundation 包含在不同级别上的多线程封装. 从Poco::Thread 类和一般同步原子(Poco::Mutex, Poco::ScopedLock, Poco::Event, Poco::Semaphore, Poco::RWLock), Poco::ThreadPool 类及支持thread-local 存储, 到高级别的活动对象(active object)的封装. 简单点儿说, 活动对象(active object)是拥有运行于自有线程中的方法的类. 这使得异步成员函数调用成为可能— 调用成员函数, 在函数执行期间, 做一堆其他的事情, 然后获得函数的返回值. 下面的示例展示在POCO中是如何做的. ActiveAdder 类定义一个活动方法add(), 由addImpl()成员函数实现. 在main()中调用活动方法产生Poco::ActiveResult (also known as a future), 最后获得函数的返回值。
XML库
POCO XML 库支持读取, 处理及写XML. 遵循POCO的一个指导原则— 不要试图重新发明已经存在的工作— POCO's XML 库支持工业标准SAX (版本2) 及DOM接口, 很多有XML经验的开发人员对此比较熟悉. SAX,XML的简单API ,定义了基于事件的XML读接口. 基于SAX的XML 解析器在读取XML文档时但它读到一个元素时会通知应用程序, 字符数据, 或其他人为定义的XML元素. SAX解析器不需要将整个XML文档装载到内存中, 因此它可用于高效测解析巨大的XML文件. 相反, DOM (文档对象模型) 让应用程序访问整个XML文档, 使用树形的对象层级. 要达到此目的,POCO提供的 DOM 解析器需要将整个文档装载到内存. 为减小DOM文档的内存占用量, POCO DOM 实现使用使用字符串spooling,经常使用的字符串如元素和属性名仅存储一次. XML 库基于Expat 开源XML 解析器库. 基于Expat 的是SAX 接口, 基于SAX接口的是DOM的实现. 对字符串, XML 库使用std::string, UTF-8编码. 这是的XML库与应用程序其他部分的接口变得简单. 在未来的版本中将提供对XPath 和 XSLT的支持。
Net库
POCO's Net 库使得编写基于网络的应用容易. 不管是应用是简单的通过纯TCP socket发送数据还是需要完整的内建HTTP server的应用,都可以在Net库中找到有用的东西。
在最底层, Net库包含socket类, 支持TCP流和server sockets, UDP sockets, multicast sockets, ICMP 及 raw sockets. 如果需要安全sockets, NetSSL 库提供支持, 实现使用了 OpenSSL. 基于socket 类提供两个框架创建TCP服务器 — 一个是多线程服务器(每个连接一个线程, 从线程池获得), 一个是基于Acceptor-Reactor模式的服务器. 多线程 Poco::Net::TCPServer 类及其支持框架也是POCO's HTTP server 实现的基础. 在客户端, Net库提供类与HTTP servers通信, 要使用ftp协议发送和接收文件, 使用SMTP发送邮件消息 (包括附件) 和从POP3 server接收邮件。
Util库
Util 库的名称可能会给人一些误导, 因为它包含了创建命令行和服务器应用的框架. 包括命令行参数处理支持(校验, 绑定到配置属性, etc.) 及管理配置信息. 支持不同的配置文件格式— Windows形式的 INI 文件, Java-类型的属性文件, XML文件及Windows注册表.
对服务器应用程序,框架提供对Windows服务和Unix后台的透明支持. 每个服务器应用可以注册以Windows服务运行, 不需要额外的代码.当然, 所有的服务器应用程序仍然可以按命令行方式运行, 这使得测试和调测容易.
Poco是国内领先的多媒体资源共享软件,是数联公司网络富集技术的综合应用产品之一。Poco为国内用户及广大华语地区用户提供了一个适合中文环境的文件交换平台,完全支持中文软件及中文关键字搜索并,并实现真正意义上的多点传输,传输效率大大提高。使用Poco软件,不仅能够搜索和下载海量的音乐、影视、图片、软件、游戏等资源,更可以使用内置的 IM(即时通信)系统方便、快捷的与好友一起分享。着重人性化的设计、充分考虑用户的需求,我们相信Poco将会成为您网络生活中必不可少的工具之一。Poco的特点:
海量资源 看看你的胃口有多大!目前Poco拥有超过6,000,000M的音乐、电影、软件、游戏、图片、书籍等资源,完全支持中文搜索,符合华语用户的使用需求,是全球华语用户最佳的多媒体资源共享平台!
急速下载!
Poco实现的真正的多点传输功能,彻底打破了传统网络结构对中心服务器效能及带宽的限制,使用的人员越多,传输效率越高,使您真正体会急速下载的快感!
即时通信
是不是觉得下载的过程很乏味呢?没关系,Poco还整合了IM(即时通信)系统,不但能够结识更多的朋友,更可以通过IM的“推荐”功能,将喜爱的资源及时与朋友一起分享,下载过程将会变得充满乐趣!
轻松拥有个性化主页
想马上拥有一个属于您自己的个性化主页么?MyPoco可以满足您的需要。超炫的界面、颜色可随信调配、版面可以自由控制和拖动、无须懂得任何编程语言,MyPoco将会是您展示个人魅力的最佳平台!
Poco2005新版本功能
全新界面,采用流行的DHTML界面。支持多种特效。简约设计风格,特出软件界面空间的利用。傻瓜型的界面引导风格更切合用户习惯,改用最常用的类似网页的导航方式。让用户 *** 作一目了然。
拖动即搜功能,只要在poco浏览器浏览网页时候通过拖动来选定指定的内容,即可看到提示框,选择类型即可搜索。
突出在线功能,高速mp3全面采用流媒体技术,优化搜索技术,做到即搜即播(但由于来源太多,可能要多选定几次,总有惊喜)电影采用poco独有的分时下载播放技术,全面解决网络瓶颈
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)