PWLib指引者

PWLib是一个用于构建多平台应用程序的庞大C++类库,尤其适用于网络、I/O移植、多线程和可移植性需求。它包含基本类如容器、线程和SOCKET支持,以及网络、进程和线程类。尽管不再支持GUI,但PWLib仍广泛应用于商业和开源项目,如OpenH323。通过PCREATE_PROCESS宏,开发者可以轻松创建基于PWLib的应用程序。
摘要由CSDN通过智能技术生成

刚开始学PWLib,只能以混乱形容,翻译并拼凑出这篇短小的文章,希望后来者少走一些弯路

Portable Windows Library

 

PWLib 1.9.0

 

概述

 

为了可以同时构建在MicrosoftUnix XWindow操作系统上应用程序,从很多年前开始,PWLib从创建到逐步完善,已经成为相当完整而庞大的C++类库。 PWLib在设计之初还提供了Macintosh接口,但至今未被实现。

 

从此,大量出现的多平台GUI工具包,例如KDEwxWindows以及OpenH323等的开发成为PWLib的主要应用者。他们开始更注重于解决网络、I/O移植性能、多线程以及可移植性能。通常PWLib被用来构建高性能和高移植性能的网络中心应用程序。

 

除了这些高级别的应用,早期PWLib还扩充了一些基本的容器类,比如数组、线性队列、排序队列(RB Tree)及散列集合(hash表)。在STL作为一种标准出现前,就已经在这里被构建。很可惜的是,这些结构同算子及通用的算法规则不能兼容。当然,这个领域的开发一直在进行之中,目前已经能够同STL兼容,并将在未来会逐步增加对STL的引入。

 

PWLib被广泛应用于多家公司,包括商业性质还是开源的产品中。PWLib创立本意主要是为了支持OpenH323项目,但作为一个单独的基本库,她非常完善。

 

PWLib中的类分为两种类型:基本类控制组件基本类包含了所有对诸如容器、线程、SOCKET等平台特性相关的结构的基本支持。所有的PWLib程序都需要有基本类

 

控制组件实现一些通常是平台无关或者不是所有程序都需要的的功能。在一些特殊的平台(比如Windows),基本类控制组件甚至被分为单独的压缩库。而在其他平台(比如Unix平台)中,所有代码被组合成一个单独的类库,并在不需要的地方直接告诉链接器忽略相关代码。

 

早期PWLib还支持GUI类和GUI组件,但在新的版本中,将不再支持。

 

如何使用PWLib

 

一个关于PWLib最简便的教程,请参考http://toncar.cz/openh323/tut ,这里我们说明一下如何创建一个最简单的程序。

 

下面的代码演示如果基于PWLib架构编写标准的”Hello world!”程序。

 

 

// hello.cxx

 

 

#include <ptlib.h>

 

 

class Hello : public PProcess

 

{

 

  PCLASSINFO(Hello, PProcess)

 

  public:

 

        void Main();

 

};

 

 

PCREATE_PROCESS(Hello)

 

 

void Hello::Main()

 

{

 

  cout << "Hello world!/n";

 

}

 

 

// End of hello.cxx

 

PCREATE_PROCESS宏定义定义了main()#函数并创建了Hello实例。使用C++初始化全局静态变量比较容易出问题(销毁更容易出问题),因此建议尽力在你的PProcess中方式所有内容,而不是在全局中定义。

 

基本类

 

基本对象类

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值