|
|
|
Documents of The sbVB Cross-platform Object Oriented C++ course |
| Part |
Version |
Slide ppt |
Exercises |
| Outline of course |
14 |
|
|
| 1 - Why C++ ? Why OO? Technology and strategy |
14 |
|
|
| 2 - C/C++ fundamentals |
15.1 |
|
|
| 3 - Object Oriented C++ |
14 |
|
|
| 4- Object Oriented C++ (addendum) |
14 |
|
|
| 5 - 3-tier web/cgi development using C++ and VBMcgi.
Exclusive content! |
14 |
|
|
| 6 - Generic programming (template) |
14 |
|
|
| 7 - STL (Standard Template Library) |
14 |
|
|
notas ECI/ECA 2009/2
sbVB_fonts
C++ book version 7 (in portuguese)
Windows Service
VBMcgi explanation
VBSerial
Boucing Shape
Videos about C++
C++ concepts
Courses by sbVB
Tutorial videos |
| Codec. Run this in Windows if you can't see the video. |
|
| Instalation and use of VBLib, with Visual C++ 6.0 |
|
| Function Pointer and use of explicit link dll ,with Visual C++ 6.0 |
|
| Creation of a dll of explicit link, with Visual C++ 6.0 |
|
C++ Libraries
see below some of my favorite libraries to help C++ software development

VBMcgi
http://www.vbmcgi.org/
http://code.google.com/p/sbvblibs/
VBMcgi is the Villas-Boas (sbVB) and Martins library for CGI using 3-tier architecture.
If you know C/C++, VBMcgi is the CGI library you have been looking for. Here are the main reasons:
- It is 100% free, and comes with original source code.
- It is designed from step zero to be multiplatform (tested on server Windows and Unix).
- All features included: form decode, cookies, and a lot more.
- It is the only CGI library in C++ that allows development with 3-tier architecture, that is, completely isolates the webmaster and webdesign. In practical terms, this means that you can use commercial html design software (that saves sophisticated html code) such as DreamWeaver, Front Page, etc. See details.
- The CGI programs can be short and very powerful, because the complex code is inside the VBMcgi library. Deliver complete solutions to your customer in binary format. He will be satisfied, but won't be able to reverse engineer what you have done.
- Add cgi functionality to an existing system without need to install third-part interpreters.
VBLib
http://www.sbvb.com.br/VBLib
http://code.google.com/p/sbvblibs/
VBLib is the general purpose Villas-Boas (sbVB) library in C++ cross-platform (Windows and Unix).
The main features of VBLib are:
- VBString class (general purpose string class with added methods)
- VBBinaryData (general purpose class to handle binary data, blob and related)
- VBCrossDLL (a class to load DLL's or so's), there's also VBCrossDLLContainer class to load a group of DLL's or so's
- VBDate, VBDateTime and VBDateTimeTimezone
- VBException (general purpose exception class)
- VBFileDiretory (a class to list files in a directory)
- VBMD5 (a class to calculate the MD5 hash)
- VBProcessArgs (a class to process arguments [ argv, argc ] and help develop command line programs
Boost
Boost http://www.boost.org/
The Boost web site provides free peer-reviewed
portable C++ source libraries. The emphasis is on libraries
which work well with the C++ Standard Library. The libraries
are intended to be widely useful, and are in regular use by
thousands of programmers across a broad spectrum of applications.
A further goal is to establish "existing
practice" and provide reference implementations so that
Boost libraries are suitable for eventual standardization.
Ten Boost libraries will be included in the C++ Standards
Committee's upcoming C++ Standard Library Technical Report
as a step toward becoming part of a future C++ Standard.
cURL
http://curl.haxx.se/
Curl is a command line tool for
transferring files with URL syntax, supporting FTP, FTPS,
HTTP, HTTPS, GOPHER, TELNET, DICT, FILE and LDAP. Curl supports
HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading, kerberos,
HTTP form based upload, proxies, cookies, user+password authentication,
file transfer resume, http proxy tunneling and a busload of
other useful tricks.
OpenSSL
http://www.openssl.org/
The
OpenSSL Project is a collaborative effort to develop a robust,
commercial-grade, full-featured, and Open Source toolkit implementing
the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security
(TLS v1) protocols as well as a full-strength general purpose
cryptography library. The project is managed by a worldwide
community of volunteers that use the Internet to communicate,
plan, and develop the OpenSSL toolkit and its related documentation.
The ADAPTIVE Communication
Environment (ACE)
http://www.cs.wustl.edu/~schmidt/ACE.html
The ADAPTIVE Communication Environment (ACE) is a freely available,
open-source object-oriented (OO) framework that implements many core patterns for concurrent
communication software. ACE provides a rich set of reusable C++ wrapper facades and
framework components that perform common communication software tasks across a range of
OS platforms. The communication software tasks provided by ACE include event demultiplexing
and event handler dispatching, signal handling, service initialization, interprocess
communication, shared memory management, message routing, dynamic (re)configuration
of distributed services, concurrent execution and synchronization.
PTypes
http://ptypes.sourceforge.net/
PTypes (C++ Portable Types Library)
is a simple alternative to the STL that includes multithreading
and networking. It defines dynamic strings, variants, character
sets, lists and other basic data types along with threads,
synchronization objects, IP sockets and named pipes. PTypes
also offers message queues as an alternative method of thread
synchronization. Its main `target audience' is developers
of complex network daemons, robots or non-visual client/server
applications of any kind.
gSOAP
http://gsoap2.sourceforge.net/
gSOAP: Generator Tools for Coding SOAP/XML
Web Service and Client Applications in C and C++
The gSOAP compiler tools provide a unique
SOAP/XML-to-C/C++ language binding to ease the development
of SOAP/XML Web services and client application in C and/or
C++. Most toolkits for C++ Web services adopt a SOAP-centric
view and offer APIs for C++ that require the use of class
libraries for SOAP-specific data structures. This often forces
a user to adapt the application logic to these libraries.
In contrast, gSOAP provides a C/C++ transparent SOAP API through
the use of compiler technology that hides irrelevant SOAP-specific
details from the user. The gSOAP stub and skeleton compiler
automatically maps native and user-defined C and C++ data
types to semantically equivalent SOAP data types and vice-versa.
As a result, full SOAP interoperability is achieved with a
simple API relieving the user from the burden of SOAP details,
thus enabling him or her to concentrate on the application-essential
logic. The compiler enables the integration of (legacy) C/C++
and Fortran codes (through a Fortran to C interface), embedded
systems, and real-time software in SOAP applications that
share computational resources and information with other SOAP
applications, possibly across different platforms, language
environments, and disparate organizations located behind firewalls.
PortAudio - portable
cross-platform Audio API
http://www.portaudio.com/
PortAudio is a free, cross platform, open-source,
audio I/O library. It lets you write simple audio programs
in 'C' that will compile and run on many platforms including
Windows, Macintosh (8,9,X), Unix (OSS), SGI, and BeOS. PortAudio
is intended to promote the exchange of audio synthesis software
between developers on different platforms, and was recently
selected as the audio component of a larger PortMusic project
that includes MIDI and sound file support.
PortAudio provides a very simple API for
recording and/or playing sound using a simple callback function.
Example programs are included that synthesize sine waves and
pink noise, perform fuzz distortion on a guitar, list available
audio devices, etc.
ImageMagic, GraphicsMagic
http://www.imagemagick.org/
http://www.graphicsmagick.org/
http://www.simplesystems.org/Magick++/
ImageMagick is a robust collection of
tools and libraries to read, write, and manipulate an image
in many image formats (over 89 major formats) including popular
formats like TIFF, JPEG, PNG, PDF, PhotoCD, and GIF. With
ImageMagick you can create images dynamically, making it suitable
for Web applications. You can also resize, rotate, sharpen,
color reduce, or add special effects to an image or image
sequence and save your completed work in the same or differing
image format. Image processing operations are available from
the command line, or from the C, C++, Perl, Java, PHP, Python,
or Ruby programming languages. A high-quality 2D renderer
is included, which provides a subset of SVG capabilities.
ImageMagick's focus is on performance, minimizing bugs, and
providing stable APIs and ABIs.
Magick++ is the object-oriented C++ API
to the GraphicsMagick image-processing library, the most comprehensive
open-source image processing package available. Read the latest
NEWS and ChangeLog for Magick++.
PaintLib
http://www.paintlib.de/
paintlib is a portable C++ class library for image loading,
saving and manipulation. Images can be loaded from BMP, GIF,
IFF, JPEG, PCX, PGM, PICT, PNG, PSD, SGI, TGA, TIFF and WMF
files and saved in BMP, JPEG, PNG and TIFF formats. Image
manipulation can be done either through filters implemented
in filter classes or by directly accessing the bitmap bits.
Full C++ source is provided. This is library version 2.60,
15/04/04. The newest version of paintlib can be found via
http://www.paintlib.de/paintlib/.
In addition to the C++ library, an ActiveX component to display
images in all the formats supported by paintlib is provided.
paintX (the paintlib ActiveX control) can be used exactly
like a VB picture object would be used.
Fmod
http://www.fmod.org/
FMOD is the fastest, most powerful and
easiest to use sound system on Windows, Linux, and Windows
CE there is, and now Macintosh, GameCube, PS2 & XBox!.
FMOD supports 3d sound, midi, mods, mp3, ogg vorbis, wma,
aiff, recording, obstruction/occlusion, cd playback (analog
or digital), cd ripping, mmx, internet streaming, dsp effects,
spectrum analysis, user created samples and streams, synchronization
support, ASIO, EAX 2&3, C/C++/VB/Delphi and more.
|