5  
 

The sbVB Cross-platform Object Oriented C++ course

 

Hire the best C++ and OO course. Please contact. Contrate o melhor curso sobre C++ e OO. Clique aqui para ver o resumo do curso.
These are the slides of the C++ course offered to the undergraduate students of DEL - Department of Electronic and Computer Engineering of Escola Politécnica of UFRJ Esses são os slides do curso de C++ oferecido para os alunos de graduação do DEL - Departamento de Engenharia Eletrônica e de Computação da Escola Politécnica da UFRJ


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.