home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
VSCPPv4.zip
/
VACPP
/
IBMCPP
/
HELP
/
CPPWELCM.INF
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1995-05-15
|
123KB
|
1,068 lines
ΓòÉΓòÉΓòÉ 1. About this Book ΓòÉΓòÉΓòÉ
This manual describes the IBM VisualAge C++ for OS/2 product (referred to as
VisualAge C++), its components, available documentation, as well as service and
support. The VisualAge C++ components give you the ability to edit, compile,
link, debug, analyze and browse C and C++ programs on the 32-bit Operating
System/2 (OS/2) system.
This manual is for application and systems programmers who want an overview of
IBM VisualAge C++ for OS/2. It assumes you have a working knowledge of the C
and C++ programming languages, the OS/2 operating system, and related products.
Before you begin to use this information, it would be helpful to understand how
to navigate through it. You can use the Table of Contents and Index facility to
locate topics and the Search facility to search the text of this document. You
can use hypertext links to acquire related information on the current topic.
Hypertext links appear in a different color (which you can customize using the
OS/2 Scheme Palette). For example, here is a link to another panel:
Communicating Your Comments to IBM. By double-clicking on the text of the link
or by pressing Enter on a highlighted link, you will open a panel of related
information. When you open a panel, the first link has the focus; to shift the
focus to other links, use the Tab key.
You should also understand:
How to Use the Contents
How to Obtain Additional Information
How to Use Action Bar Choices
How to Cut and Paste Examples
ΓòÉΓòÉΓòÉ 1.1. Notices ΓòÉΓòÉΓòÉ
Copyright International Business Machines Corporation, 1995. All rights
reserved.
Note to U.S. Government Users - Documentation related to restricted rights -
Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP
Schedule Contract with IBM Corp.
First Edition, May 1995.
This edition applies to Version 3.0 of IBM VisualAge C++ for OS/2 (30H1664,
30H1665, 30H1666) and to all subsequent releases and modifications until
otherwise indicated in new editions. Make sure you are using the correct
edition for the level of the product.
This publication could include technical inaccuracies or typographical errors.
Changes are periodically made to the information herein; any such changes will
be reported in subsequent revisions.
Requests for publications and for technical information about IBM products
should be made to your IBM Authorized Dealer or your IBM Marketing
Representative.
When you send information to IBM, you grant IBM a nonexclusive right to use or
distribute the information in any ways it believes appropriate without
incurring any obligation to you.
Any reference to an IBM licensed program in this publication is not intended to
state or imply that only IBM's licensed program may be used. Any functionally
equivalent product, program, or service that does not infringe any of IBM's
intellectual property rights may be used instead of the IBM product, program,
or service. Evaluation and verification of operation in conjunction with other
products, except those expressly designated by IBM, is the user's
responsibility.
IBM may have patents or pending patent applications covering subject matter in
this document. The furnishing of this document does not give you any license
to these patents. You can send license inquiries, in writing, to the IBM
Director of Licensing. IBM Corporation, 500 Columbus Avenue, Thornwood, NY,
10594, USA.
This publication contains examples of data and reports used in daily business
operations. To illustrate them as completely as possible, the examples include
the names of individuals, companies, brands, and products. All of these names
are fictitious and any similarity to the names and addresses used by an actual
business enterprise is entirely coincidental.
ΓòÉΓòÉΓòÉ 1.2. Trademarks and Service Marks ΓòÉΓòÉΓòÉ
The following terms used in this publication are trademarks or service marks of
IBM Corporation in the United States or other countries:
BookManager
C Set ++
Common User Access
CUA
IBM
Operating System/2
OS/2
Personal System/2
Presentation Manager
PS/2
SOM
System Object Model
VisualAge
WorkFrame/2
Workplace Shell
Windows is a trademark of Microsoft Corporation.
Other company, product, and service names, which may be denoted by a double
asterisk(**), may be trademarks or service marks of others.
ΓòÉΓòÉΓòÉ 1.3. How to Use the Contents ΓòÉΓòÉΓòÉ
When the Contents window first appears, some topics have a plus (+) sign beside
them. The plus sign indicates that additional topics are available.
To expand the Contents if you are using a mouse, click on the plus sign. If you
are using the keyboard, use the Up or Down Arrow key to highlight the topic,
and press the plus (+) key. For example, How to Use the Contents has a plus
sign beside it. To see additional topics for that heading, click on the plus
sign or highlight that topic and press the plus (+) key.
To view a topic, double-click on the topic (or press the Up or Down Arrow key
to highlight the topic, and then press the Enter key).
ΓòÉΓòÉΓòÉ 1.4. How to Obtain Additional Information ΓòÉΓòÉΓòÉ
After you select a topic, the information for that topic appears in a window.
Highlighted words or phrases indicate that additional information is available.
Certain words and phrases are highlighted in a different color from the
surrounding text. These are called hypertext terms.
If you are using a mouse, double-click on the highlighted word. If you are
using a keyboard, press the Tab key to move to the highlighted word, and then
press the Enter key. Additional information then appears in a window.
ΓòÉΓòÉΓòÉ 1.5. How to Use Action Bar Choices ΓòÉΓòÉΓòÉ
Several choices are available for managing the information presented in this
document. There are three menus on the action bar: the Services menu, the
Options menu, and the Help menu.
The actions that are selectable from the Services menu operate on the active
window currently displayed on the screen. These actions include the following:
Placing Bookmarks
You can set a placeholder so you can retrieve information of interest to
you.
Searching for Information
You can find occurrences of a word or phrase in the current topic,
selected topics, or all topics.
Printing Information
You can print one or more topics. You can also print a set of topics by
first marking the topics in the Contents list.
Copying Information to a File
You can copy a topic that you are viewing to the System Clipboard or to a
file that you can edit. This method is particularly useful for copying
syntax definitions and program samples into the application that you are
developing.
Using the actions that are selectable from the Options menu, you can change
the way your Contents list is displayed. To expand the Contents and show all
levels for all topics, choose Expand all from the Options pull-down. You can
also press the Ctrl and * keys together.
The actions that are selectable from the Help menu allow you to select
different types of help information.
For information about any of the menu choices, highlight the choice in the
menu and press F1.
ΓòÉΓòÉΓòÉ 1.5.1. Placing Bookmarks ΓòÉΓòÉΓòÉ
When you place a bookmark on a topic, it is added to a list of bookmarks you
have previously set. You can view the list, and you can remove one or all
bookmarks from the list. If you have not set any bookmarks, the list is empty.
To set a bookmark, do the following:
1. Select a topic from the Contents.
2. When that topic appears, select the Bookmark option from the Services
menu.
3. If you want to change the name used for the bookmark, type the new name
in the field.
4. Click on the Place radio button (or press the Up or Down Arrow key to
select it).
5. Click on OK (or select it and press Enter). The bookmark is then added to
the bookmark list.
ΓòÉΓòÉΓòÉ 1.5.2. Searching for Information ΓòÉΓòÉΓòÉ
You can specify a word or phrase to be searched. You can also limit the search
to a set of topics by first marking the topics in the Contents list.
To search for a word or phrase in all topics, do the following:
1. Select the Search option from the Services menu.
2. Type the word or words to be searched for.
3. Click on All sections (or press the Up or Down Arrow keys to select it).
4. Click on Search (or select it and press Enter) to begin the search.
5. The list of topics where the word or phrase appears is displayed.
ΓòÉΓòÉΓòÉ 1.5.3. Printing Information ΓòÉΓòÉΓòÉ
You can print one or more topics, the index, or the table of contents. Make
sure that your printer is connected to the serial port, configured correctly,
and ready for input. To print:
1. Select Print from the Services pull-down.
2. Select what you want to print. Note that the This section and Marked
sections choices are only available if you are viewing a topic or if you
have marked topics, respectively. To mark topics in the table of
contents, press the Ctrl key and click on the topics, or use the arrow
keys.
3. Select Print to print what you've chosen on your printer.
ΓòÉΓòÉΓòÉ 1.5.4. Copying Information to a File ΓòÉΓòÉΓòÉ
You can copy a topic that you are viewing in two ways:
Copy copies the topic that you are viewing into the System Clipboard. If
you are using a Presentation Manager (PM) editor (for example, the
Enhanced Editor) that copies or cuts (or both) to the System Clipboard,
and pastes to the System Clipboard, you can easily add the copied
information to your program source module.
Copy to file copies the topic that you are viewing into a temporary file
named TEXT.TMP. You can later edit that file by using any editor.
TEXT.TMP is placed in the directory where your viewable document resides.
To copy a topic, do the following:
1. Expand the Contents list and select a topic.
2. When the topic appears, select Copy to file from the Services menu.
3. The system puts the text pertaining to that topic into the temporary file
TEXT.TMP.
ΓòÉΓòÉΓòÉ 1.6. How to Cut and Paste Examples ΓòÉΓòÉΓòÉ
You can copy examples (or information) from this reference/guide/book to
compile, link, and run them, or to paste them into your own code.
To copy an example or information:
1. Make the topic you want to copy the active window.
2. From the Services menu, select Copy to file. The text in that topic is
placed in the temporary file TEXT.TMP, in the same directory as this
reference.
3. You can then modify or use TEXT.TMP as you want.
Note: Because the system copies the entire contents of the topic to the file,
you may need to edit it to remove additional text.
ΓòÉΓòÉΓòÉ 1.7. Other Information You Might Find Helpful ΓòÉΓòÉΓòÉ
This product provides a number of online guides and references that we hope
you'll find helpful as you develop applications. This information includes
User's Guides, References, and How Do I help that gives you specific
instructions for performing common tasks. You can get to this online
information from the Information folder inside the main product folder. You
can also get to it from the Help menu in any of the components of the product.
ΓòÉΓòÉΓòÉ 1.8. Communicating Your Comments to IBM ΓòÉΓòÉΓòÉ
If there is something you like, or dislike, about this book, please let us
know. You can use one of the methods listed below to send your comments to
IBM. Please be sure to include the complete title of the publication that you
are commenting on.
The comments you send should only pertain to the information in this document
and its presentation. To request additional publications or to ask questions
or make comments about the functions of IBM products or systems, you should
talk to your IBM representative or you authorized IBM remarketer.
When you send comments to IBM, you grant IBM a nonexclusive right to use or
distribute your comments in any way it believes appropriate without incurring
any obligation to you.
You can send your comments to IBM in the following ways:
By mail to the following address:
IBM Canada Ltd. Laboratory
Information Development
2G/345/1150/TOR
1150 EGLINTON AVENUE EAST
NORTH YORK, ONTARIO
CANADA M3C 1H7
By FAX to the following number:
- United States and Canada: (416) 448-6161
- Other countries (+1) 416-448-6161
By electronic mail to one of the following IDs. Be sure to include your
entire network address if you wish to get a reply.
- Internet: torrcf@vnet.ibm.com
- IBMLink: toribm(torrcf)
- IBM/PROFS: torolab4(torrcf)
- IBMMAIL: ibmmail(caibmwt9
ΓòÉΓòÉΓòÉ 2. Introducing IBM VisualAge C++ for OS/2 ΓòÉΓòÉΓòÉ
IBM VisualAge C++ for OS/2 is a comprehensive and powerful C/C++ development
package for OS/2 programming. This new, OS/2 Warp-enabled release supports the
development of C and C++ applications through a full set of tools. The browser,
editor, compiler, linker, debugger, performance analyzer, visual builder, and
database access tools work together as an integrated set of tools. These
powerful, graphical tools are designed to help you as you progress through the
development cycle of your application.
Each of the components is described in this online book.
To use the VisualAge C++ product with a sample WorkFrame project and a simple
example, double-click on the Welcome to VisualAge C++ overview icon in the
VisualAge C++ folder.
ΓòÉΓòÉΓòÉ 2.1. VisualAge C++ Components ΓòÉΓòÉΓòÉ
This new version of VisualAge C++ includes a variety of components in an
integrated environment designed to support the development of C and C++
applications, These components are:
To help you get started
- Project Smarts - a set of pre-configured projects to start the more
common development tasks
- WorkFrame - a fully-configurable environment that allows the
integration of multiple tools
To help you code and edit
- Visual Builder constructs entire applications, complete with
windows, menu bars, entry fields, and icons
- Data Access Builder visually allows you to create C++ classes for
easy access to DB2/2 relational databases
- IBM Open Class Library incorporates a rich and comprehensive set of
building blocks
- The Browser provides fast and easy access to source program
information
- The Editor is a powerful, language-sensitive C++ editor.
To help you compile and link
- The Compiler and Linker generate highly optimized 32-bit code
- Direct-to-SOM (DTS) support provides a fast, simple way to create
high quality SOM objects.
To help you test and debug
- The Debugger helps you find and fix errors fast.
- The Performance Analyzer helps you time and tune your application
ΓòÉΓòÉΓòÉ 2.2. To Start ΓòÉΓòÉΓòÉ
The following VisualAge C++ components help you to start developing
applications.
Project Smarts - Create Pre-Configured Projects
WorkFrame - Customize Your Development Environment
ΓòÉΓòÉΓòÉ 2.2.1. Project Smarts - Create Pre-Configured Projects ΓòÉΓòÉΓòÉ
Project Smarts is a tool to help you quickly get started writing VisualAge C++
applications. It is a catalog of skeletal applications you can use as a base
from which to write your own applications.
Project Smarts catalog
To use Project Smarts, find the Project Smarts icon in the VisualAge C++ folder
and double-click on it to open the Project Smarts catalog. It contains a list
of common applications, including:
C Dynamic Link Library
C++ Dynamic Link Library
Data Access Application
Direct-to-SOM Application
IPF Context-Sensitve Help
IPF Document.
Presentation Manager Application
Resource Dynamic Link Library
UI Class Library Application
Visual Builder Application
Workplace Shell Application
Select an application, click on the Create pushbutton, and Project Smarts
creates a fully-configured, development-ready project on your desktop. A
project represents the complete set of data and actions that you need to build
a single target, such as a dynamic link library (DLL) or executable file
(EXE). All the actions, options, and environment variables you need to develop
a similar application are preconfigured for you. Each project is created with
template source files to get started quickly on the real work, without having
to set up the basics every time. Project Smarts applications are skeletal,
but running, programs.
A Project Smarts application is distinct from a sample project; it does not
teach you programming techniques or concepts. The code provides a starting
point for you to build on when developing your own applications from the code
templates.
ΓòÉΓòÉΓòÉ 2.2.2. WorkFrame - Customize Your Development Environment ΓòÉΓòÉΓòÉ
WorkFrame is a fully configurable and open integrating environment that lets
you mix and match your favorite tools with the ones provided by VisualAge C++.
In this way you can create and customize your personal development environment.
WorkFrame gives you the flexibility to work with your files and perform project
actions that are most effective for you. For example:
Use the Build Smarts dialog to quickly switch between the most common
build options. Through a single dialog you specify whether you want to
optimize, debug, browse, or analyze your code. Build Smarts temporarily
increments your existing compiler and linker options to build the project
the way you requested. Because Build Smarts does not change the compile
and link options you may have specifically defined for the project, you
can still perform your customized compile, link, make or build operations
through WorkFrame dialogs.
You are given a variety of menu choices. WorkFrame provides a menu bar
and a tool bar in each project window (similar to conventional integrated
development environments). If you prefer direct manipulation, you can use
popup menus and drag and drop capability to start actions or change
options.
You can launch actions defined in a project from a single VisualAge C++
tool. For example, if you are editing source files, you can build the
project from the editor. When the project builds cleanly, you can start
the debugger (or any other VisualAge C++ tool) from the editor.
ΓòÉΓòÉΓòÉ 2.3. To Code and Edit ΓòÉΓòÉΓòÉ
The following VisualAge C++ components help you to code and edit:
Visual Builder - An Object-Oriented Visual Application Builder
Data Access Builder - Build Classes to Access Relational Data
VisualAge Browser - Fast, Easy Access to Program Information
VisualAge Editor - A Powerful Language-Sensitive Editor
IBM Open Class Library - A Comprehensive Set of Building Blocks
ΓòÉΓòÉΓòÉ 2.3.1. Visual Builder - An Object-Oriented Visual Application Builder ΓòÉΓòÉΓòÉ
Visual Builder is a visual programming tool that can help you create
object-oriented applications using the C++ programming language.
Visual Builder gets you started by providing a set of parts as well as
interactive visual programming tools to work with those parts. You create your
applications by visually assembling and connecting these prefabricated parts.
Visual programming with Visual Builder consists primarily of:
1. Creating a graphical user interface (GUI) from parts using the
Composition Editor, and, parts supplied by Visual Builder, parts that you
create, or both
2. Connecting the parts so that they interact with each other properly
3. Generating C++ code using Visual Builder's code generator.
You can extend Visual Builder by adding your own reusable, custom parts and
then using these parts in your applications as you need them. You can also
import or export these parts from other applications. The parts are treated as
classes by Visual Builder. By developing a library of your own unique parts,
tailored to the special requirements of your business, even large and complex
applications can be created by visually arranging and connecting parts.
ΓòÉΓòÉΓòÉ 2.3.2. Data Access Builder - Build Classes to Access Relational Data ΓòÉΓòÉΓòÉ
The Data Access Builder allows you to create new object-oriented database
applications quickly and reliably by generating the source code and embedded
SQL for you. Add, update, delete, and retrieve methods are generated for each
class.
These database parts can be used directly in your programs, or you can import
them into Visual Builder. By using Visual Builder to connect them to the GUI,
or other parts, you can create high quality applications quickly.
Some of the key features of Data Access Builder are:
Map tables to classes. Create new classes using your existing database
tables. You can create one class, or many classes, from any table. Both
C++ and SOM IDL code are supported.
Quick or custom mapping. The Data Access Builder offers a quick map
feature that allows you to do a column-to-attribute mapping. By using
inheritance,users are able to customize their classes to suit their
needs.
Visual display of your mapping. The Data Access Builder graphically
displays the mapping of your database tables to the object classes. This
view allows visual editing and uses icons for tables, classes, and arrows
to show the mappings.
Connection and transaction services. Separate services are provided for
connection and disconnection from your databases. In addition, commit and
rollback operations are provided to handle transaction services.
DB2 Family support. Access DB2/2 in a standalone environment or access
DB2 through the DB2 Client Application Enabler.
ΓòÉΓòÉΓòÉ 2.3.3. VisualAge Browser - Fast, Easy Access to Program Information ΓòÉΓòÉΓòÉ
The Browser is a tool that lets you examine programs developed in VisualAge C++
that use large and complex collections of interrelated classes in class
libraries.
Graph window showing all base and derived classes of IControl class
The Browser lets you look at your source code in many different ways. You can:
List program objects by type (for example, all classes), by content
(members of a class), or by components (all files)
View relationships between program components graphically, such as class
inheritance hierarchies, function calls, and included files
View and edit the actual source code associated with a selected program
element using your default editor
View online documentation for a class or class member. That is, if you
select a class or class member, you can directly access the reference
manual entry for that class or class member.
The Browser allows you to view your program either after compilation or by
using QuickBrowse from within the Browser.
The graphical user interface consists of two types of Browser windows:
A List window displays a list of program elements such as source files,
functions, and classes
A Graph window displays program relationships in a graphical format, for
example, all nodes in a class hierarchy. You can specify the level of
detail you want the graph to show, scroll over the graph, zoom in and
out, and select program elements directly from the graph.
ΓòÉΓòÉΓòÉ 2.3.4. VisualAge Editor - A Powerful Language-Sensitive Editor ΓòÉΓòÉΓòÉ
A new editor has been integrated into VisualAge C++. The Editor lets you build,
debug, browse, make, or issue other VisualAge C++ commands directly from your
editing session.
The Project Pulldown Menu in the Editor
It performs all the common editing tasks such as insert, delete, split and join
lines, find, block, and manipulate text, or undo changes, create and find
marks, and move between different source views.
In addition, to make programming simpler and error free:
It is language sensitive. It highlights in different fonts and colors
for different types of language constructs. Automatic indenting is
provided. It dynamically performs simple lexical error checking. You
can check your work by quickly navigating through each error without
having to compile or leave the editor.
The editor helps you to review and understand the code by presenting
several views of the source. For example, you can display the function
headers in the file to quickly see what is in the file and locate a
function of interest. You can also display the program's flow of
control, or insert programming templates.
The editor is fully customizable. You can:
- Change key assignments
- Write external commands to extend editor capability
- Create additional parsers
- Configure the tool bar
- Select a personality. It supports the look and feel of many common
editors, such as the OS/2 editor EPM.
You can record a sequence of keyboard events as an LPEX REXX command and
then modify it to be reused as an external command.
For more information about the using the VisualAge Editor, refer to the Editor
chapter in the VisualAge C++ User's Guide.
ΓòÉΓòÉΓòÉ 2.3.5. IBM Open Class Library - A Comprehensive Set of Building Blocks ΓòÉΓòÉΓòÉ
The IBM Open Class Library provides you with a variety of building blocks to
use in your C++ programs. Many of the fundamental components of C++
applications have been provided as reusable, extensible classes. IBM Open
Class helps you reduce your programming effort and avoid coding errors by
providing a comprehensive set of classes, from basic input/output operations
and string handling, through abstract data types and user interface support.
The class libraries are:
Collection Classes
User Interface Classes
Application Support Classes
Standard Classes
ΓòÉΓòÉΓòÉ 2.3.5.1. Collection Classes ΓòÉΓòÉΓòÉ
The Collection Classes offer a complete set of abstract data types such as
sequences, sets, bags, and trees. These classes help to reduce errors and
simplify the task of standardizing the format of data when designing programs
or passing data between modules.
The Collection Classes deliver:
A choice of several underlying implementations are each optimized for
different requirements: array, linked list, hash table, AVL tree, and
B*-tree. Since these implementations provide the same programming
interface, as you tune the performance of your application, you can
select the best underlying implementation for the same data type
abstraction without changing your source code.
Completeness of abstract data types. For instance, all abstract data
types have complete sorted and keyed versions.
Flexible parameterization. You can implement your own memory manager.
Flexible definition of element operations. Default equality and and
comparison operators can be overridden with your own definition.
ΓòÉΓòÉΓòÉ 2.3.5.2. User Interface Classes ΓòÉΓòÉΓòÉ
The User Interface Classes provide a comprehensive set of classes for
programming graphical user interfaces on OS/2, AIX, and Windows. These classes
simplify the coding of GUI applications and result in a more portable, reusable
object-oriented user interface.
IBM Open Class gives you a consistent way to write user interface code without
having to program to the low-level system APIs. IBM Open Class exploits the
underlying operating system services. For example, the user interface classes
exploit Motif services on AIX and Presentation Manager services on OS/2.
The User Interface Classes let you:
Create and display windows using title bars, varying sizes and styles
Include controls such as menus, buttons, text, list boxes, sliders,
notebooks, and containers, withnew support for animated pushbuttons
Draw canvases with flexible window layouts that allow automatic redrawing
and aligning of cells independent of the display device
Provide direct manipulation (drag and drop) support
Add multimedia with classes for constructing many different devices like
a midi sequencer, wave file playing and editing, digital video players
and recorders, programmable CD players, amplifier and mixer, and the
master audio control
Provide 2-D graphics support for drawing primitives (lines and arcs) plus
support for reading and displaying various graphic formats, such as GIF,
PIF, BMP, and others
Create and manage a tool bar, including being able to move, change, and
resize it
Create parts, using the parts notification framework, for Visual Builder
Communicate between OS/2 applications running on the same machine using
Dynamic Data Exchange (DDE)
Display help, define contextual help, and handle help keys, plus new
fly-over help that comes up automatically when the mouse pointer is on an
object
Cut, copy, and paste to and from the clipboard.
You can use all of these classes as provided or extend and tailor them,
combine them with other class libraries to develop complete object-oriented
applications.
ΓòÉΓòÉΓòÉ 2.3.5.3. Application Support Classes ΓòÉΓòÉΓòÉ
The Application Support Classes provide the basic abstractions required during
the creation of most C++ applications, including:
String manipulation classes
Date and time classes
Error handling and trace classes.
The string classes define a data type for strings and provide member functions
that let you perform a variety of data manipulation and management activities.
They provide capabilities beyond those available with standard C strings in
the string.h library functions.
The string classes have the following capabilities:
String buffers are handled automatically
Strings can contain both SBCS and MBCS characters
Strings can be indexes by character or by word
Strings can contain null characters (there are no restrictions on the
contents of a string object).
The string class members allow you to:
Use strings in input and output
Access information about strings
Compare strings
Test the characteristics os strings
Search for characters or words within a string
Manipulate and edit strings
Convert strings to and from numeric types
Format strings by adding or removing white space.
The date and time classes provide you with data types to store and manipulate
date and time information. With these classes you can create date and time
objects, and use member functions to do the following:
Write date and time objects to an output stream
Access detailed information about dates or times
Compare dates or times
Add or subtract days from a date, or hours, minutes, or seconds from a
time
Convert between date formats or time formats.
The exception classes provide the framework for throwing exceptions within the
class libraries. The trace class helps in tracing exceptions.
ΓòÉΓòÉΓòÉ 2.3.5.4. Standard Classes ΓòÉΓòÉΓòÉ
The Standard Classes consist of the standard I/O Stream library and the Complex
library.
The I/O Stream Library provides you with the facilities to deal with many
varieties of C++ input and output. You can derive classes from this library to
customize the input and output facilities for your own particular needs.
The Complex Library gives you the capability to manipulate complex (imaginary)
numbers and perform standard mathematical operations on them.
ΓòÉΓòÉΓòÉ 2.4. To Compile and Link ΓòÉΓòÉΓòÉ
VisualAge C++ provides the following components to help you compile and link:
VisualAge Compiler and Linker - Generate Highly-Optimized 32-bit Code
Direct-to-SOM (DTS) Support - Create High Quality SOM Objects
ΓòÉΓòÉΓòÉ 2.4.1. VisualAge Compiler and Linker - Generate Highly-Optimized 32-bit Code ΓòÉΓòÉΓòÉ
The Compiler and Linker generate highly optimized C and C++ code and make
efficient use of disk and memory space. To produce the most efficient code
possible, VisualAge C++ uses such advanced optimization techniques as:
Instruction scheduling
Code hoisting
Global register allocation
User code inlining
Intermodule optimizations.
Code can be optimized for any Intel architecture processor from the i386 to
the Pentium.
New memory management algorithms in the C and C++ runtimes make efficient use
of memory to reduce the amount of memory overhead in your programs.
If you need to minimize how much disk space your application uses, the
compiler has a new minimize size option. While generating code for debugging,
disk space can also be saved with the new set of debug support options. This
can reduce the size of debug-ready executables without the loss of debug
information. Also, the line number only debugging support offers the option of
a lower level of debug support with almost no increase in executable size.
In addition, linker optimization options improve resolution of function and
member function calls. These options can significantly reduce the size of
your application files.
The VisualAge C++ compiler and linker are fast and highly usable. Compile time
has been improved, especially with the use of improved precompiled headers.
The new 32-bit linker with automatic template resolution (without prelinking)
improves link time over that of the previous linker (LINK386). It also
supports most of the options of the previous linker with the new linker
options.
ΓòÉΓòÉΓòÉ 2.4.2. Direct-to-SOM (DTS) Support - Create High Quality SOM Objects ΓòÉΓòÉΓòÉ
Direct-to-SOM (DTS) is a standard for implementing flexible and reusable
objects, supported by the tools of VisualAge C++. DTS combines standard C++
syntax with IBM's System Object Model (SOM).
With VisualAge C++ you generate SOM objects directly from the C++ compiler by
turning on a compiler option. The compiler generates the corresponding
Interface Definition Language (IDL) for use in interlanguage or Distributed SOM
(DSOM) applications. The VisualAge C++ Browser shows SOM objects in a different
color than a C++ object. The Data Access Builder has options to generate SOM
classes (or IDL code). The VisualAge C++ Debugger provides debug support for
SOM objects.
SOM improves your C++ programming productivity:
Release to release binary compatibility removes the dependency between
the code that implements a class and the code that uses it. This
compatibility allows you to create and deploy a new version of a class,
with added function or data members, and with inheritance from new base
classes, without the need to recompile unchanged code. By packaging your
SOM class in a DLL, you can replace the existing DLL with the new one,
and all applications that use it will continue to run.
Extensive dynamic facilities let you query properties of objects and
classes, and the use of the classes and methods whose names are not known
until execution time. Applications can be extended by incrementally
installing new applications that the application is told about through a
configuration file or by user input.
Distributed SOM (DSOM) allows access to objects between processes, or
across networks.
With DTS you write C++ directly and this lets you use C++ features in your SOM
classes that were not available before DTS. These features include templates,
operators, constructors with parameters, default parameters, and static
members.
ΓòÉΓòÉΓòÉ 2.5. To Test and Debug ΓòÉΓòÉΓòÉ
VisualAge C++ provides the following components to help you test and debug:
VisualAge Debugger - Find and Fix Coding Errors Fast
VisualAge Performance Analyzer - Time and Tune Your Code
ΓòÉΓòÉΓòÉ 2.5.1. VisualAge Debugger - Find and Fix Coding Errors Fast ΓòÉΓòÉΓòÉ
The Debugger is your primary tool for detecting and diagnosing coding errors.
Program monitor and a debug source view
The user interface gives you the ability to debug at the source level, as well
as providing access to common debugger functions such as step, run, set
breakpoints, monitor variables, display the call stack, display registers, and
display storage.
The Debugger provides the following built-in tools to help locate problems and
fix code quickly:
The Window Analysis tool displays a three-dimensional view of all the
windows your program creates, including the window characteristics and
relationships
The Message Queue Monitor actively monitors Presentation Manager messages
C++ debugging features include template support, locate overloaded
functions, class display, and debugging code in include files
Automatic heap checking to help isolate memory management problems by
checking for memory overwriting each time your program starts executing.
ΓòÉΓòÉΓòÉ 2.5.2. VisualAge Performance Analyzer - Time and Tune Your Code ΓòÉΓòÉΓòÉ
The Performance Analyzer helps you time and tune your applications by
collecting execution data in a trace file and presenting it in several
graphical diagrams.
Call Nesting diagram
The trace file lets you :
See a detailed record of function calls and returns. Locate the areas
within an application where a disproportionate amount of time is spent.
View the function call stack any place in the application to see the
history of events leading up to the point the program stopped.
Determine multithread interactions and expose problems with critical
sections by looking at the sequencing of procedures across threads.
Using these diagrams, you can improve the performance of an application,
examine what led to certain faults, and understand what happens when your
application runs.
ΓòÉΓòÉΓòÉ 3. Bibliography ΓòÉΓòÉΓòÉ
This bibliography lists the publications that make up the IBM VisualAge C++
library and publications of related IBM products referenced in this book. The
list of related publications is not exhaustive but should be adequate for most
VisualAge C++ users.
ΓòÉΓòÉΓòÉ 3.1. The IBM VisualAge C++ Library ΓòÉΓòÉΓòÉ
The following books are part of the IBM VisualAge C++ library.
Read Me First!, S25H-6956
Welcome to VisualAge C++, S25H-6957
User's Guide, S25H-6961
Programming Guide, S25H-6958
Visual Builder User's Guide, S25H-6960
Visual Builder Parts Reference, S25H-6967
Building VisualAge C++ Parts for Fun and Profit, S25H-6968
Open Class Library User's Guide, S25H-6962
Open Class Library Reference, S25H-6965
Language Reference, S25H-6963-00
C Library Reference, S25H-6964
ΓòÉΓòÉΓòÉ 3.2. The IBM VisualAge C++ BookManager Library ΓòÉΓòÉΓòÉ
The following documents are available in VisualAge C++ in BookManager format.
Read Me First!, S25H-6956
Welcome to VisualAge C++, S25H-6957
User's Guide, S25H-6961
Programming Guide, S25H-6958
Visual Builder User's Guide, S25H-6960
Visual Builder Parts Reference, S25H-6967
Building VisualAge C++ Parts for Fun and Profit, S25H-6968
Open Class Library User's Guide, S25H-6962
Open Class Library Reference, S25H-6965
Language Reference, S25H-6963-00
C Library Reference, S25H-6964
ΓòÉΓòÉΓòÉ 3.3. C and C++ Related Publications ΓòÉΓòÉΓòÉ
Portability Guide for IBM C, SC09-1405
American National Standard for Information Systems / International
Standards Organization - Programming Language C (ANSI/ISO
9899-1990[1992])
Draft Proposed American National Standard for Information Systems -
Programming Language C++ (X3J16/92-0060)
ΓòÉΓòÉΓòÉ 3.4. IBM OS/2 2.1 Publications ΓòÉΓòÉΓòÉ
The following books describe the OS/2 2.1 operating system and the Developer's
Toolkit 2.1.
OS/2 2.1 Using the Operating System, S61G-0703
OS/2 2.1 Installation Guide, S61G-0704
OS/2 2.1 Quick Reference, S61G-0713
OS/2 2.1 Command Reference, S71G-4112
OS/2 2.1 Information and Planning Guide, S61G-0913
OS/2 2.1 Keyboard and Codepages, S71G-4113
OS/2 2.1 Bidirectional Support, S71G-4114
OS/2 2.1 Book Catalog, S61G-0706
Developer's Toolkit for OS/2 2.1: Getting Started, S61G-1634
ΓòÉΓòÉΓòÉ 3.5. IBM OS/2 3.0 Publications ΓòÉΓòÉΓòÉ
User's Guide to OS/2 Warp, G25H-7196-01
The following books make up the OS/2 3.0 Technical Library (G25H-7116).
Control Program Programming Guide, G25H-7101
Control Program Programming Reference, G25H-7102
Presentation Manager Programming Guide - The Basics, G25H-7103
Presentation Manager Programming Guide - Advanced Topics, G25H-7104
Presentation Manager Programming Reference, G25H-7105
Graphics Programming Interface Programming Guide, G25H-7106
Graphics Programming Interface Programming Reference, G25H-7107
Workplace Shell Programming Guide, G25H-7108
Workplace Shell Programming Reference, G25H-7109
Information Presentation Facility Programming Guide, G25H-7110
OS/2 Tools Reference, G25H-7111
Multimedia Application Programming Guide, G25H-7112
Multimedia Subsystem Programming Guide, G25H-7113
Multimedia Programming Reference, G25H-7114
REXX User's Guide, S10G-6269
REXX Reference, S10G-6268
ΓòÉΓòÉΓòÉ 3.6. Other Books You Might Need ΓòÉΓòÉΓòÉ
The following list contains the titles of IBM books that you might find
helpful. These books are not part of the VisualAge C++ or OS/2 libraries.
ΓòÉΓòÉΓòÉ 3.6.1. BookManager READ/2 Publications ΓòÉΓòÉΓòÉ
IBM BookManager READ/2: General Information, GB35-0800
IBM BookManager READ/2: Getting Started and Quick Reference, SX76-0146
IBM BookManager READ/2: Displaying Online Books, SB35-0801
IBM BookManager READ/2: Installation, GX76-0147
ΓòÉΓòÉΓòÉ 3.6.2. Non-IBM Publications ΓòÉΓòÉΓòÉ
Many books have been written about the C++ language and related programming
topics. The authors use varying approaches and emphasis. The following is a
sample of some non-IBM C++ publications that are generally available. This
sample is not an exhaustive list. IBM does not specifically recommend any of
these books, and other C++ books may be available in your locality.
The Annotated C++ Reference Manual by Margaret A. Ellis and Bjarne
Stroustrup, Addison-Wesley Publishing Company.
C++ Primer by Stanley B. Lippman, Addison-Wesley Publishing Company.
Object-Oriented Design with Applications by Grady Booch,
Benjamin/Cummings.
Object-Oriented Programming Using SOM and DSOM by Christina Lau, Van
Nostrand Reinhold.
OS/2 C++ Class Library: Power GUI Programming with C Set ++ by Kevin
Leong, William Law, Robert Love, Hiroshi Tsuji, and Bruce Olson, John
Wiley & Sons, Inc.