       IBM VisualAge C++ Professional for AIX Version 4.0 - README
       -----------------------------------------------------------

  IBM(R) VisualAge(R) C++ Professional for AIX(R) Version 4.0
  (C)Copyright IBM Corp. and by others, 1989, 1998. All Rights Reserved.

  US Government Users Restricted Rights - Use, duplication or disclosure
  restricted by GSA ADP Schedule Contract with IBM Corp.
 
========================================================================

This file contains important information about the IBM VisualAge C++
Professional for AIX Version 4.0.  
Be sure to read the INSTALL THIS PRODUCT section before proceeding with
the installation.

Support

The IBM VisualAge C++ home page at: 
  http://www.software.ibm.com/ad/visualage_c++/ 
includes many items of interest, such as downloads, education, events, and 
a support section. The support section describes how to report suspected
defects.

Fee Support

Fee Support responds to your initial call within a specified time and then
tracks your problem through to resolution.

Please visit 
  http://service.boulder.ibm.com/rs6000/ 
for worldwide information on how to get support in your country, including 
whether your country provides support electronically or over the internet 
in addition to telephone support. The IBM Software Support Handbook, 
accessible from: 
  http://ps.software.ibm.com/ 
also lists worldwide support contacts.

Phone numbers for information on Support Line offerings are:

 * United States: 1-888-426-4343 (IBM Global Services).
   For general information: 1-800-IBM-4YOU (1-800-426-4968)
 * Canada: 1-800-465-9600. 
   For general information: 1-800-IBM-4YOU (1-800-426-4968).

 * Elsewhere, please contact your local IBM office.


Trademarks

The following terms are trademarks of International Business Machines
Corporation in the United States or other countries or both:
 
    IBM
    DB2
    Open Class
    OS/2
    AIX
    VisualAge
     
Other terms used in this README, which may be denoted by a double
asterisk(**), are trademarks or service marks of others.

Microsoft, Windows, and Windows NT, are trademarks or registered 
trademarks of Microsoft Corporation.
     
 
Contents
========
 
TYPICAL HARDWARE REQUIREMENTS 
SOFTWARE REQUIREMENTS
PREREQUISITES
INSTALL THIS PRODUCT
UNINSTALL THIS PRODUCT
TUTORIAL
LATE-BREAKING NEWS
NEW INFORMATION 

========================================================================

TYPICAL HARDWARE REQUIREMENTS
_____________________________

   o Model/Type:
     - RS/6000 43P, 7248-132 
   o CPU:
     - PPC 604, 133MHz
   o Display:
     - P70 with E15 Graphics Adapter
   o CD-ROM drive - for installation only
   o Mouse or pointing device
   o Memory requirements:
     96MB Minimum, 128MB Recommended
   o Disk space requirements (in MB): up to 650MB
     Note that the space required depends on the selections you make
     during the install.
   o Swap/paging space: 128MB minimum


SOFTWARE REQUIREMENTS
_____________________ 

 o VisualAge C++ Professional Version 4.0 runs on AIX 4.1.5 or later 
   modification levels of AIX Version 4.1 (5765-393 or 5765-C34),
   AIX Version 4.2 (5765-655 or 5765-C34), or AIX Version 4.3 (5765-C34)
   for RS/6000. 
 

PREREQUISITES
_____________

 o A frames-capable browser to access the HTML-based help such as:
   - Netscape Communicator** Version 4.04 or later 

 o To use the Data Access Builder you need:
   - A database with the appropriate ODBC database driver (available
     from the Oracle** Corporation, or from Sybase**, Inc.), or
   - DB2 Version 2.1.2 or later

 o The IDE requires License Use Management Version 4.0 (LUM) which in 
   turn requires APAR IX64408 if you are running AIX Version 4.1, and 
   APAR IX64105 if you are running AIX Version 4.2. Use the following 
   command to determine if these items have been installed:
   lslpp -h bos.adt.include bos.adt.lib bos.adt.libm bos.net.ncs 
    ifor_ls.compat ifor_ls.base
   Refer to the AIX V4 Installation Guide if you need to install these 
   products.  

 o The IDE requires APAR IX68945 on Multi Processor (MP) machines running
   AIX Version 4.2.

INSTALL THIS PRODUCT
____________________

 o If you had installed the VisualAge C++ 4.0 Beta, you must uninstall 
   it before installing the final version of the product. To do this, 
   do an uninstall of:
   - vatools 
   - vacpp
   - memdbg.adt
   Then you must do a "force" install of the xlC.rte from the CD, followed 
   by a regular install of the components on the CD.

 o Use installp via smit or smitty on the CD-ROM. Select components required.
   If you use the "preview" feature of installp, you can verify your 
   selection and the available disk space before installing the software. 
   This install will upgrade the following filesets which are shipped 
   with other products:
   - xlC.rte
   - IMNSearch.rte.httpdlite, IMNSearch.rte.SBCS
   - ipfx.rte, ipfx.adt, ipfx.msg.LANG.rte, ipfx.msg.LANG.adt 
   - xldb.base, xldb.msg.LANG, xldb.help.LANG 
   - memdbg.adt, memdbg.msg.LANG
   - ifor_ls.base.cli 
   - odbc
   - bos.net.ncs
  
   Installp will not automatically upgrade filesets which have not been 
   selected.

    
Common Desktop Environment Support
==================================
 o If you install the vacpp.Dt.* filesets, a "VisualAge C++ Professional 4.0"  
   Application Group appears in every user's Application Manager. 


IMNSearch install
=================
 o If you experience a problem installing the IMNSearch component, 
   completely remove the component before trying to re-install. 
   Note that this only applies to a new installation of the IMNSearch 
   component. If you already have a previous version of the IMNSearch 
   component, you should not remove the component before trying to 
   re-install.


Help Browser requirements
=========================
 o Ensure you do not have the environment variable SOCKS_NS set. 
   This setting can cause Netscape to hang. This variable is sometimes
   left over from Netscape 3.0 when upgrading to Netscape 4.0 or above.
 
 o The browser that you use must not have proxy handling for the localhost 
   port. If you are using Netscape's automatic proxy configuration, talk 
   to your system administrator to find out whether 127.0.0.1 and localhost 
   are handled as proxy exceptions (they should be). Your system administrator 
   can configure the proxy settings so that HTML help will work.

 o If you are setting proxy or socks services manually, ensure you turn off 
   proxy handling for localhost in the browser you use:
    o In Netscape 4 (Communicator)
      1. Select Edit... Preferences..
      2. Double-click Advanced in the Category tree
      3. Click Proxies in the Advanced subtree
      4. Click View at the Manual Proxy Configuration selection
      5. Type: 

         localhost:49213,127.0.0.1

         in the "Exceptions... Do not use proxy servers for domains beginning 
         with" box. If you have other entries here, separate the new entry 
         with a comma.

      6. Click OK, then click OK to exit the Preferences Window.


Problems with Netscape Browsers
===============================
 o Certain versions of Netscape Communicator 4.x have a well-known problem 
   with HTML frames when they are first loaded. According to Netscape, 
   restarting the browser is a workaround for this problem, and subsequent 
   calls to framesets will display properly.

 o There is a problem running Netscape on AIX 4.2.1 and 4.3.1 after you 
   install the IBM C and C++ Compilers runtime. If you have installed the 
   runtime, and Netscape Communicator or Navigator fails to start with an 
   "Exec format" error, then you should get the fix at:

   ftp://aix.software.ibm.com/aix/efixes/netscape/

   Follow the installation instructions in the README file found in the 
   same directory of the  FTP site.

   Details:
   --------
   Netscape Communicator and Navigator version 4 uses a private copy of
   libc.a, which must remain synchronized with other shared AIX libraries. 

   On AIX 4.3.1 the error message will be similar to:

   Could not load program /usr/local/netscape4/netscape_aix4
   Symbol __malloc_postfork_unlock in /usr/lib/libpthreads.a is undefined
   Symbol __malloc_prefork_lock in /usr/lib/libpthreads.a is undefined
   Could not load library libC.a[shr.o]
   Error was: Exec format error

   On AIX 4.2.1 the error message will be similar to:

   Could not load program netscape_aix4
   Symbol snprintf in /usr/lib/libX11.a is undefined
   Could not load library libXt.a[shr4.o]
   Error was: Exec format error   


UNINSTALL THIS PRODUCT
______________________

 o You can uninstall this product via installp -u of the appropriate 
   filesets.  Typically, this would be:
	installp -u vatools vacpp

   If you are certain that you do not have C Set++ for AIX, Version 3.1.4, 
   C for AIX, Version 4.3, or IBM C and C++ Compilers, Version 3.6 or 
   higher, and you do not need to keep ipfx, xldb, odbc, IMNSearch, and 
   memdbg, you may uninstall them as well.

   Other products may contain some combination of the components
   referenced above.  You should take care not to inadvertently uninstall
   them.  The following products include some of the above common components:
   - C for AIX V4.1 
   - C for AIX V4.3 
   - XLF Runtime V5.1 
   - C and C++ Compilers for AIX, Version 3.6.4
   - C for AIX V4.4 
   - XLF Runtime V5.11 
   - VAC++ V4.0 

   Do not uninstall ifor_ls.base.cli.
   Do not uninstall xlC.rte.


TUTORIAL 
________

 o The Tutorial included in VisualAge C++ Professional for AIX, Version 4.0 
   is divided into sections that 
   o Describe the features of the product (What's Cool!) 
   o Describe the new IDE (Tour of VisualAge) 
   o Give you an opportunity to use the product while developing 
     applications (Try VisualAge C++). 


LATE-BREAKING NEWS
__________________

This section contains information about new functions and known problems.

PATHS
=====
 o All tools in VisualAge C++ Professional for AIX are run from 
   /usr/vacpp/bin or /usr/vatools/bin.
   To use the tools, we recommend that you either specify the path explicitly,
   or prepend /usr/vacpp/bin, or usr/vatools/bin to your PATH environment 
   variable.
   

Online Help
============
 o To view the online help, either use the "Help Home Page" Desktop icon, 
   or run 
         vachlp40 open index.htm
   from the command line. This will take you to the Help Home Page. 
   You can also reach the Help from the menu bars in the IDE, in Data Access 
   Builder, or in the Visual Builder.


Migration
=========
 o The make2cfg aid incorrectly converts -qarch=com to gen(arch,com).
   You need to update the generated configuration file to change gen(arch,com)
   to gen(arch,common).

 o Since gen(rtti,all)is a global option, it must be moved outside of all 
   braces in the configuration file. That is, it must be an option directive 
   outside all other directives.   

 o The make2cfg aid does not properly convert the use of the -S compiler 
   option for creating assembler files from C source code. 
   You should remove it from the makefile before running make2cfg. Not 
   removing the -S option may result in incorrect handling of source and 
   objects during conversion.  
   After the conversion, manually add a source directive with 
   "option file(genasm)" to the configuration (.icc) file to create the 
   assembler files. A target directive is unnecessary and cannot be used.  
   For example, add:
       option file(genasm) { source type(c) 'myfile.c' }


C++ Language Features
=====================
 o The header files <ciso646> and <cwctype> are not supported on AIX Versions
   4.1 or 4.2.  They are supported on AIX Version 4.3. 

 o Language definition changes with respect to how C++ floating point to integral
   conversion is done, may affect how the compiler matches calls to certain 
   functions declared in math.h. For instance, if you see a message such as
      (S) There is no best match for call to "sqrt".
   or other functions, your source may need to be changed to avoid the implicit 
   conversion. Alternatively, see the "lang(compatmath,yes)" option.

The IDE
=======
 o The Integrated Development Environment (IDE) is designed to run with LUM.
   When you install the IDE, LUM is automatically installed.

   Once LUM is installed, you must follow the LUM enrollment procedure 
   defined in /usr/vacpp/README.password. If you do not follow the 
   enrollment procedure, you will see the following message:
   No licenses available. Contact your program supplier to add additional 
   users. Note that you can also receive this message when you have performed 
   the enrollment, but you are, in fact, exceeding the enrolled number.

 o  When the Num Lock key is on accelerators will not work properly in the IDE.
    This also occurs in Open Class applications which have accelerators and in 
    the Data Access Builder.  

 o With the exclusion of system consoles, the IDE cannot run on screens which 
   have more that 256 colours. This applies to X-stations or X Server emulators. 


Using the Samples
=================
 o To compile any sample, you must create a copy in a directory that you 
   have access to. For instance, to copy the Open Class sample called 
   'notebook':
	cd 			# Go to your userid's top directory
	mkdir -p samples/ioc/notebook
	cd samples/ioc/notebook
	cp /usr/vacpp/samples/ioc/notebook/* .	# Copy all the files
	chmod +w *			# Allow you to update the files.

   If you select the "Copy This Project" item in the Samples table of contents
   in the Help System, you will receive instructions for copying the samples.  

 o If you open one of the three IDE samples (MLE, EVENODD, or PAYROLL), the
   IDE performs the steps described above. 
	

Building
========
 o If an IOC application or an application which uses POSIX threads is built
   with a non-optimized configuration file, an error similar to the following
   may be generated: 
   "/usr/include/pthread.h", line 552.17:(S)CPPC0403: "_mutex_global_np" is
   already defined

   This may occur because the system header file pthread.h contains the 
   definition of a variable called _mutex_global_np. Some of the IOC header
   files include pthread.h.  This causes duplicate definitions when these
   headers are included in separate source files which are built into the 
   same target.

   To resolve this, add the following to the configuration file as one of the
   sources for the appropriate target:
     option macros(global, yes){source type(h) 'pthread.h'}

   If the options lang(nokeyword, "bool"), lang(nokeyword, "true"), 
   lang(nokeyword, "false) are being used, make sure this declaration of 
   pthread.h as a macro source file occurs within the scope of these options.

 o If you are familiar with the "xlC_r" command and other variants of 
   "xlC", you will find equivalent variants for "vacbld", such as vacbld_r,
   vacide_r, in this product. 

 o Any changes to the source that goes into a build (including relocation 
   of user files and system files) will not be reflected in the codestore
   (the .ics file) until after the next build. This build is not done 
   automatically. You need to explicitly start a build to reflect such 
   changes.
   If widespread changes have been made, it may be more efficient to delete 
   the codestore and perform a full build rather than perform an incremental 
   build on the existing codestore.  Widespread changes may include the 
   relocation of system files to another drive, a change in a target's name, 
   a change in any option that affects the linking of the target, or changes 
   in the compilation of a large number of source files by changing the 
   level of optimization used. 

 o To build multithreaded applications or libraries, the link option 
   "link(linkWithMultiThreadLib,yes)", is not sufficient on AIX.  On AIX
    you must also use the appropriate "defaults" group, such as 
    "option defaults(xlC_r)".

 o Due to the way that AIX manages shared libraries, you could encounter the		
   the following situation: 
   If you have a project which builds a shared library, running an executable 
   which loads the shared library will cause the file to be "in use". You will 
   need to run 'slibclean', to unlock the shared library before you can rebuild 
   it. This is not unique to VisualAge C++ Professional for AIX , but can be 
   frustrating if you are trying to develop an application that uses shared 
   libraries.


Debugging
=========
 o The debugger may send SIGSTOP signals to the debuggee to force the debuggee to 
   stop temporarily so that the debugger can read/write debuggee memory. This may 
   cause problems with blocking signal calls in the debuggee, since a stop signal 
   will cause them to return an error, and set errno to EINTR. It is usually 
   considered good practice to write your code so that this would not cause a 
   problem.

 o You may need to start a debuggee in a separate XTERM or AIXTERM window because
   either a text window is not available (by starting the IDE from the icon), or  
   you want the debuggee to run on another client screen.
   If you want to start a debuggee in a separate XTERM or AIXTERM window, you can 
   do so with the following procedure:
   - debug the XTERM or AIXTERM program (usually located in /usr/bin/X11). The 
     parameters must include -e and the name of the program to be debugged. You must 
     also select "debug child processes"
   - you will get two XTERM processes (a parent and child). Run the child process, and 
     the XTERM window will appear.
   - the program you wish to debug will then be executed in the child process, and will 
     stop at the initial program entry point (not main)
   - if you then "run" again, your program can be debugged normally.

 o The heap checking and automatic heap checking functions may not generate reliable
   results. This will be fixed in a PTF that will be released shortly.


Resource Compiler
=================
 o If files included in the resource script file are not in the current 
   directory, /usr/vacpp/include or /usr/include the resource extension 
   cannot resolve the files and will return an error. 

   The workaround is to use a run directive in your configuration file	
   to generate the resource file. Make sure the generated resource file 
   has a .o extension. For example:  

     run target("myresource.res.o"),source("myresource.rc") 
     "irc -DMYDEFINE -Iinclude1 -Iinclude2 mresource.rc myresource.res.o" 

   To add the resource to an executable, add the .o file previously 
   generated to your configuration file.  For example:

     target "main" { 
     source type(o) "myresource.res.o" 
     source type(cpp) "main.cpp"
     }

   To create a resource shared library add another run directive to your
   configuration file: 

     run target("myresdll.a"),source("myresource.res.o") 
         "makeC++SharedLib -r -o myresdll.a -p 0 myresource.res.o"

   The -r flag for makeC++SharedLib is the bind resources flag.


IBM Open Class Libraries
========================
 o The Open Class Libraries in VisualAge C++ Professional for AIX are not 
   binary compatible with the level of Open Class shipped in IBM C and C++ 
   Compilers, Version 3.6. They are functionally very similar, however. 
   Recompile your IOC-based code. Do not use Open Class libraries from
      /usr/ibmcxx/libibm*.a 

 o Open Class applications which have accelerators will not work properly 
   when the Num Lock key is on.  This also occurs in the IDE and the 
   Data Access Builder.  


Compiler directives for IOC Applications
----------------------------------------
 o All Projects using IOC must have the following lines in their 
   configuration file for the project.  
   See any of the .icc (configuration) files in IOC Samples for an 
   example.

	defaults(xlC_r)
	link (linkwithmultithreadlib)
	gen(rtti,yes)
	lang(nokeyword,"bool")
	lang(nokeyword,"true")
	lang(nokeyword,"false")

   Note that projects generated with the Project Smartguide will automatically 
   generate these options for you.


Data Access Builder
===================
 o The access app forms generated by DAX can be edited in the Visual 
   Builder. However, if Data Access Builder is re-launched and the classes 
   for the session generated, the forms will be regenerated also, and your 
   customized changes will be lost.

 o If a parameter type is unknown to the compiler when an SQL statement 
   is validated, the SQL type will be marked as 'UNKNOWN'.  The user must 
   then choose the proper SQL type from the combo box that shows the type. 
   This will work properly, but if the type requires a length or precision 
   and scale values, there is currently no way to enter this information.  
   The resulting generated code will not work because of the missing 
   information.

 o Refer to the Data Access Builder online HTML help for information on
   building and running the Database samples.

 o The Database mini-samples are easily rebuilt using the rebuild.cmd files 
   in each of the directories.

 o Mapping an SQLCHAR of length 1 from the database to the C++ type 'char' 
   may not do what you expect.  ODBC will convert the contents of the 
   database column to a numeric value.  For example, if the database value 
   was the character '7' then the char value in the C++ class would be 
   0x07, not the ASCII code for the character '7'.  If you map the column 
   to an IString instead, you will get a string of length one.

 o Under DB2, User Defined Types (UDTs) may sometimes incorrectly return 
   a length value of zero.  This problem is fixed in DB2 FixPak U449586 
   for DB2 Version 2.1.2, located at
   ftp://ftp.software.ibm.com/ps/products/db2/fixes/english-us/db2aixv21/
   u449586.
   The problem is fixed in DB2 Version 5.

  
Compiler directives for Data Access Applications
------------------------------------------------
 o All Projects using the Data Access Builder classes (which, are always
   IOC projects) must have the following lines in their configuration file 
   for the project, in addition to those entries needed for IOC samples:
        incl(searchpath, "home/"$DB2INSTANCE"/sqllib/include")	// For DB2
	link(linksearchpath, "home/"$DB2INSTANCE"/sqllib/lib")	// For DB2
	source "libcppaci40.a"		// Data Access classes
	source "libdb2.a"		// For DB2 ESQL only

   if using DB2, or the following if using ODBC:

        link(linksearchpath,"/usr/odbc/dlls")
	source "libcppacu40.a"		// Data Access classes

 o For DB2 ESQL, if you want a bind file, then add the option:
      SqlPrepOptions(BINDFILE)

 o Data Access Builder sessions (.DAX files) from VisualAge C++ for OS/2,
   Version 3.0, and from VisualAge for C++ for Windows, Version 3.5, 
   can be imported into the AIX version of the Data Access Builder
   provided they are transferred to AIX in binary.
   
 o For DB2 ODBC, the Intersolv AIX driver provided with VisualAge does not 
   support calling stored procedures. The ODBC driver supplied with DB2 does
   support calling stored procedures.

 o When you open a cursor on a database table by using the open method from 
   the Data Access Manager class, you must close the cursor (by using the 
   Manager's close method) before disconnecting the datastore object.

 o When a Visual Builder application that uses Data Access parts is migrated 
   from VisualAge C++ for Windows Version 3.5, Data Access attributes that are 
   mapped to IStrings that are also promoted in the Visual Builder result in 
   incorrect code being generated by the Visual Builder. This arises because 
   the .vbe files generated by the Windows version of the Data Access Builder 
   do not match the generated code.

   To fix this problem, demote promoted Data Access attributes that are 
   mapped to IStrings and re-promote them. Then the application will compile 
   successfully.

 o To use the supplied ODBC drivers with DB2, the ODBC supplied bind files must 
   be bound to each of the databases that the Data Access Builder has to access. 
   To do this:
      cd to /usr/odbc/dlls
      For each DB2 database:
        db2 connect to <database>
        db2 bind qecsv1.bnd 
        db2 bind qecswhv1.bnd
        db2 bind qerrv1.bnd
        db2 bind qerrwhv1.bnd
        db2 bind qeurv1.bnd
        db2 bind qeurwhv1.bnd
        db2 connect reset

 o To run a Data Access application using the ODBC driver that is shipped with DB2 
   instead of the one shipped with this product, do the following: 

   1. Extract db2.o from libdb2.a
       - cd /home/$DB2INSTANCE/sqllib/lib 
       - ar -vx libdb2.a 
       - mv shr.o db2.o 

   2. Edit your .odbc.ini file to reference the DB2 driver 
      (/home/$DB2INSTANCE/sqllib/lib/db2.o).

   3. Extract libodbc.o out of libodbc.a
       - cd /home/$DB2INSTANCE/odbclib/lib
       - ar -vx libodbc.a

   4. Set the DAXODBC environment variable to be the path to libodbc.o
      ( export DAXODBC=/home/$DB2INSTANCE/sqllib/odbclib/lib/libodbc.o)


Visual Builder
==============
 o Window ID -- A window that is a client of a frame window requires the 
   ID of IC_FRAME_CLIENT_ID.  Although the ID property can be altered, 
   VisualAge ignores the setting and sets the property to the required ID.

 o The online documentation for "Using handwritten code from previous 
   versions", incorrectly states: "If your handwritten code calls 
   initializePart(), remove the call. This function is no longer used to 
   enable notification and signal the ready event."  This is no longer valid 
   and should be ignored. Do not remove the initializePart() function. 

 o Migrating Visual Builder part files:
   Visual Builder part files (VBB's) from VisualAge C++ for OS/2, Version 
   3.0, and VisualAge for C++ for Windows, Version 3.5, can be migrated to 
   Visual Builder 4.0 part files (VBF's). Use the -vbmigrate parameter when 
   you launch ivb, (that is, "ivb -vbmigrate"). 
   Optionally you can pass in the VBB files you want to migrate. If you 
   specify just the -vbmigrate parameter, a file selection dialog opens.

   
Compiler directives for Visual Builder Applications
---------------------------------------------------
 o All Projects using the Visual Builder classes (which, are always
   IOC projects) must have the following lines in their configuration file 
   for the project, in addition to those entries needed for IOC samples:
	source "libvacvgui40.a"		// Visual Parts
	source "libvacvngui40.a"	// Non-Visual and Visual Parts
   See /usr/vacpp/samples/database/visual/odbc/VisSamp.icc for an example 
   which uses both the Visual Builder and the Data Access Builder.


NEW INFORMATION
_______________

This section contains additions or corrections to the online documentation.  

The IDE
=======
 o Pressing F1 on a ToolBar button displays help for the current view, not 
   the button.

 o You can only position the toolbar at the top or bottom of the client. Also, 
   if you move one toolbar, all toolbars are moved.

 o Use F10 to give focus to the menubar before you type the menubar mnemonic.

 o Use F7 to navigate between pane extensions.

 o You can move the pane with focus by holding down the Shift key and dragging 
   any pane border with mouse button 1. 

 o The Class Definition Criteria described in the online help for Change Filter 
   View indicates that base, abstract, and singleton class type objects are 
   available choices.  The class filter for base and singleton class type objects 
   are not supported at this time.


IBM Open Class Libraries
========================

 o Note the following corrections to the documented file names owned by the
   Open Class Library for AIX:
   Documented Name  Correct Name                  Description
   ---------------  ------------       ----------------------------------------
   libvaCui.a       libvacuins.a       Non-shared static library for UI classes           
   libvaCuis.a      libvacui.a         Shared library for UI classes
   libvaCgraphd.a   libvacgraph2dns.a  Non-shared static library for 2D Graphic 
                                       classes
   libvaCgraphds.a  libvacgraph2d.a    Shared library for 2D Graphic classes
   libvaCbase.a     libvacbasens.a     Non-shared static library for base classes
   libvaCbases.a    libvacbase.a       Shared library for bases classes
        -           libvacfstrmns.a    Non-shared static library for file 
                                       stream classes 
        -           libvacfstrm.a      Shared library for file stream classes
        -           libvactestfwns.a   Non-shared static library for test 
                                       framework classes
        -           libvactestfw.a     Shared library for test framework classes 

 o The notification id's, IWindow::deleteId and IStandardNotifier::deleteId 
   available in previous versions of the IBM Open Class Library have been replaced 
   by 1 id, INotifier::deleteId. 
   Any references to the 2 deprecated id's will resolve to INotifier::deleteId. 
   Code which depends on the 2 deprecated id's being unique will still compile but 
   may not function as expected.

 o On AIX, upper and lowercase accelerators are treated as separate accelerators 
   and therefore they need to have separate entries in the accelerator table.

   For example, pressing "Ctrl-a" or "Ctrl-A" requires separate accelerator 
   entries like:
   ACCELTABLE WND_MAIN 
   BEGIN 
    "A" , MI_SELECT_ALL , CONTROL 
    "a" , MI_SELECT_ALL , CONTROL
    "D" , MI_DESELECT_ALL , CONTROL 
    "d" , MI_DESELECT_ALL , CONTROL 
   END 


Using the Product with Exceed
=============================
 o The Exceed PC X Server software available from Hummingbird** 
   Communications Ltd. cannot run on screens which have more that 256 colours.

 o If you use Exceed on Windows NT to access AIX applications, configure Exceed
   to correctly represent the IDE controls on your xterms or xapplications as
   follows:

   1. Choose Xconfig from your Exceed menu
   2. Double-click on Screen Definition   
   3. Choose "X" from the Window Manager drop down menu, rather than "Native"
   4. If you mix your xterms or xapplications with your other windows on 
      NT Windows, click the OK button, and restart the Exceed server. 
      Go to step 6.
   5. If you want all of your xterms, aixterms, or xapplications to be 
      contained in a separate window, choose the "Single" radio button in the 
      Window Mode group.  Click the OK button, and restart the Exceed server.
   6. Whenever you start up an xterm or aixterm, the window will not show any 
      pane controls.  After you start an xterm or aixterm session, start up 
      your favorite X-window manager system.  Some of the common ones are the 
      Common Desktop Environment (CDE), FVWM, Motif Window Manager (MWM), and 
      TWM.
      The equivalent commands to start the window manager systems are:
      CDE - /usr/dt/bin/dtsession
      FVMW - fvwm
      MWM - mwm
      TWM - twm
     
      You can launch a window manager systen as a background process by 
      appending '&'  so that you can reuse the same shell.  
      For example, /usr/dt/bin/dtsession &

 o Occasionally when you run AIX GUI applications under Exceed, then give 
   focus to a Windows NT application, and then return the focus to the Exceed 
   session, the GUI application assumes an incorrect color palette. For instance, 
   the IDE will appear with black characters on an almost black background on 
   some of the controls. To fix this problem, give another window (such as an 
   AIXTERM) in the AIX session focus, then reselect the errant application. 
   It will now repaint properly. 


Documentation
=============
 o A PDF version of Bjarne Stroustrup's "The C++ Programming Language" is 
   included in this product. The files are located in the /usr/vacpp/pdf/en_US
   subdirectory. You need Adobe Acrobat Reader 3.0 to view the files. You 
   can download the reader from the Adobe website at www.adobe.com  
   The table of contents file (tbl.pdf) contains links to all major parts
   and chapters in the book. 
   Note: the files are intended for viewing only and they cannot be copied
   or printed.

 o A number of PDF files have been created from selected Concepts and Tasks 
   that are documented in the online information. 
   These files are in the /usr/vacpp/pdf/en_US subdirectory.
   The PDF files are: 
   o build.pdf - Building Projects
   o dax.pdf - Data Access Builder 
   o debug.pdf - Debugger  
   o ide.pdf - Integrated Development Environment  
   o ioc.pdf - IBM Open Class 
   o migrate.pdf - Migration
   o visualbd.pdf - Visual Composition
