Portable Windows Libary
=======================
Contents
--------
1. Introduction
2. Apologies
3. CVS Access
4. Building PWLib
5. Using PWLib
6. IPv6 issues
7. Platform Specific Issues
8. Conclusion
9. Licensing
================================================================================
1. Introduction
---------------
PWLib is a moderately large class library that has its genesis many years ago as
a method to product applications to run on both Microsoft Windows and Unix
X-Windows systems. It also was to have a Macintosh port as well but this never
eventuated. The parts of the library relating to GUI functions have also been
removed.
Since then the system has grown to include many classes that assist in writing
complete multi-platform applications. Classes for I/O portability, multi-threading
portability, aid in producing unix daemons and NT services portably and all
sorts of internet protocols were added over the years.
All this over and above basic "container" classes such as arrays, linear lists,
sorted lists (RB Tree) and dictionaries (hash tables) which were all created
before STL was standardized. Future versions of PWLib will see many of these
classes replaced or supplemented by STL.
The library was used extensively for all our in-house products. Then we decided
to support the open H323 project by throwing in some of the code written for
one of our products. Thus, required PWLib so it got thrown into the open source
world as well.
================================================================================
2. Apologies (not)
------------------
As you start using the library, the inevitable question "why did they do it that
way?" will come up. The more experienced out there will know that there are
several reasons for the way things are:
* Carefully considered design,
* Workarounds for portability and compiler subtleties,
* History, it may be too hard to change an early design decision,
* Complete arbitrariness, the absence of any compelling reason.
So, when you ask the next question "why didn't you do it this way?" The answer
will be one of the above. The last one being a synonym for "we didn't think of
that!"
The bottom line is, use the library as is or change it as you require. You can
even send in suggestions for improvements (or merely changes) and we may (or may
not) include them in the base line code. Just do not send us any mail starting
with the words "Why did you..." as the answer is quite likely to be "Because!"
================================================================================
3. CVS Access
-------------
There is a public CVS archive available at cvs.sourceforge.net. To avoid
everyone getting all of the code platforms, we have provided CVS "modules"
that allow the Windows and Unix source trees to be extracted seperately.
The available modules are:
pwlib This ReadMe.txt file only
ptlib_unix Unix libraries only
ptlib_win32 Windows libraries only
pwlib_win32 Windows libraries + GUI (no longer supported)
openh323 OpenH323 only
Note that the ptlib_unix, ptlib_win32 and pwlib_win32 modules all extract
subcomponents of the pwlib directory tree using the CVS modules file - they
are not different directories.
To extract one of these modules, use a command line like the following:
cvs -z3 -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/openh323 co module
where "module" is one of the module names specified above.
If you would like see the structure of the CVS, then use the View CVS tool at:
http://cvs.sourceforge.net/viewcvs.py/openh323/
================================================================================
4. Building PWLib
-----------------
This library is multi-platform, however there are only two major build systems
that are used. The Microsoft DevStudio environment for Windows and the GNU make
system for all of the various unix systems.
SPECIAL NOTE FOR MSVC 6 USERS:
------------------------------
If you are using MSVC 6 then please run the "msvc6_upgrade.bat" script in the
PWLIB top directory before continuing. If you skip this step, you will not
be able to compile PWLib on MSVC 6. If you change the build environment to bypass
this step, then DLL versions of PWLib will not function correctly. For more
information, please see:
http://www.voxgratia.org/docs/pwlib_windows.html#msvc_headers
4.1. For Windows
----------------
Note that more complete instructions can be found at the following URL, but here
are the basics:
http://www.voxgratia.org/docs/pwlib_windows.html
1. Note you will need the bison and flex tools to compile some parts of the
system. You can get a copy from http://www.openh323.org/bin/flexbison.zip,
follow the instructions included in that package and put the executables
somewhere in your path.
2. Start MSVC (v5, v6 or v7 (.NET)). If you have another compiler you are on
your own! Add these folders to the Include Files path as follows:
In VisualStudio v5/6 go into the Tools menu, Options item, Directories tab.
In VisualStudio v7, go into the Tools menu, Options item. In the Options
dialog, open the Projects folder, VC++ Directories item. In the 'Show
Directories for:' list, select 'Include files'.
C:\PWLib\Include
Add the following to the Lib Files path and the Executable Files path:
C:\PWLib\Lib
The Lib folder is created as parts of PWLib are built. Also add this
directory to your PATH environment variable (so the MergeSym tool can
be found).
2. The build should automatically create a file pwlib/include/ptbuildopts.h
via the configure.exe program that should be in the pwlib directory. If
you have any problems try running the program directly from a command
line. Use ".\configure --help" to get information on options such as
forcing a feature or library dependency.
Note there are additional notes in the "Platform Specific Issues" on how
to compile the various libraries in a manner suitable for use by PWLib
under Windows.
3. In VisualStudio v5/6 open the pwlib.dsw file in the pwlib top directory.
If you have the minimum library it will come up with several requests to
find .dsp files, just cancel past these.
In VisualStudio v7 open the pwlib.sln file in the pwlib top directory.
4. That's it, now you're on your own!
These are the project relationships:
project dependencies output
------- ------------ ------
Console (none) ptlibs.lib
MergeSym ptlibs.lib mergesym.exe
PTLib ptlibs.lib, mergesym.exe ptlib.dll & lib
Console Components (none) ptclib.lib
MSDevWizard (none) PWLibWizard.awx
XMLRPC ptlibs.lib, ptclib.lib xmlrpc.exe
PacketVXD (none) epacket.vxd
Debug versions append 'd' to filename, ie: ptlibsd.lib.
MSDevWizard will not build in VisualStudio v7 and so is not included as a project.
--------------------------------------------------------------------------------
4.2. For unix.
--------------
1. If you have not put pwlib it into your home directory (~/pwlib) then
you will have to defined the environment variable PWLIBDIR to point to
the correct directory.
Also make sure you have added the $PWLIBDIR/lib directory to your
LD_LIBRARY_PATH environment variable if you intend to use shared
libraries (the default).
2. Build the debug and release versions of the PWLib library
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
我的OpenH323编译编译经历:(OpenH323源码)ptlib-v1_12_0-src.rar (961个子文件)
asnparser.1 2KB
regex.3 15KB
regex.7 10KB
configure.ac 68KB
rfc1155.asn 4KB
snmp.asn 4KB
CopyDTF_2005.bat 835B
CopyDTF_2003.bat 264B
run_dumpbin.bat 84B
msvc6_upgrade.bat 53B
LICENCE.be_sample_code 1KB
regcomp.c 38KB
preprocess.c 29KB
engine.c 26KB
smallft.c 23KB
uninstall.c 16KB
mdf.c 12KB
main.c 11KB
split.c 7KB
misc.c 6KB
debug.c 5KB
regexec.c 4KB
regerror.c 3KB
regfree.c 758B
docs.cfg 8KB
docs.cfg 8KB
configure 333KB
configure 199KB
COPYRIGHT 976B
getdate_tab.cpp 51KB
configure.cpp 32KB
stdlibx.cpp 21KB
stdlibx.cpp 17KB
istream.cpp 17KB
ostream.cpp 15KB
time.cpp 12KB
time.cpp 11KB
msvc6chk.cpp 9KB
streamb.cpp 6KB
cevfw.cpp 4KB
ios.cpp 3KB
ceostream.cpp 2KB
cevfw.cpp 2KB
iostream.cpp 2KB
snmpdummy.cpp 1KB
precompile.cpp 41B
.cvsignore 256B
.cvsignore 112B
.cvsignore 109B
.cvsignore 105B
.cvsignore 100B
.cvsignore 100B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 95B
.cvsignore 87B
.cvsignore 83B
.cvsignore 81B
.cvsignore 81B
.cvsignore 81B
.cvsignore 81B
.cvsignore 81B
.cvsignore 81B
.cvsignore 81B
.cvsignore 81B
.cvsignore 81B
.cvsignore 81B
.cvsignore 75B
.cvsignore 73B
.cvsignore 65B
.cvsignore 65B
.cvsignore 65B
.cvsignore 46B
.cvsignore 33B
.cvsignore 31B
.cvsignore 30B
.cvsignore 15B
.cvsignore 12B
.cvsignore 8B
main.cxx 98KB
vxml.cxx 91KB
vconvert.cxx 85KB
sockets.cxx 85KB
contain.cxx 83KB
osutils.cxx 77KB
httpform.cxx 72KB
asner.cxx 67KB
httpsvc.cxx 62KB
ethsock.cxx 61KB
svcproc.cxx 60KB
tlibthrd.cxx 60KB
共 961 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
ancktion
- 粉丝: 6
- 资源: 41
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页