home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / trialva / ibmcppw / help / cppwigde.inf (.txt) < prev    next >
Encoding:
OS/2 Help File  |  1996-02-20  |  218.4 KB  |  3,907 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. About This Book ΓòÉΓòÉΓòÉ
  3.  
  4. This booklet describes the VisualAge for C++ installation program, and gives 
  5. you step-by-step instructions on how to install VisualAge for C++ from CD-ROM 
  6. to a LAN or workstation or multiple workstations.  It also suggests what you 
  7. should do after you've completed the installation to familiarize yourself with 
  8. VisualAge for C++ and get started using it. 
  9.  
  10. This booklet also gives you a product overview of the IBM VisualAge for C++ for 
  11. Windows product. 
  12.  
  13. Before using this booklet or VisualAge for C++ itself, you should be familiar 
  14. with Windows 95, Windows NT, or Windows 3.1. 
  15.  
  16. Before you begin to use this information, it would be helpful to understand how 
  17. to navigate through it. You can use the Table of Contents and Index facility to 
  18. locate topics and the Search facility to search the text of this document. You 
  19. can use hypertext links to acquire related information on the current topic. 
  20. Hypertext links appear in a different color. For example, here is a link to 
  21. another panel: Communicating Your Comments to IBM. By double-clicking on the 
  22. text of the link or by pressing Enter on a highlighted link, you will open a 
  23. panel of related information. When you open a panel, the first link has the 
  24. focus; to shift the focus to other links, use the Tab key. 
  25.  
  26. You should also understand: 
  27.  
  28.      How to Use the Contents 
  29.      How to Obtain Additional Information 
  30.      How to Use Menu Bar Choices 
  31.      How to Cut and Paste Examples 
  32.  
  33.  
  34. ΓòÉΓòÉΓòÉ 1.1. Notices ΓòÉΓòÉΓòÉ
  35.  
  36. (C) Copyright International Business Machines Corporation, 1995, 1996. All 
  37. rights reserved. 
  38.  
  39. Note to U.S. Government Users - Documentation related to restricted rights - 
  40. Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP 
  41. Schedule Contract with IBM Corp. 
  42.  
  43. This edition applies to Version 3.5 of IBM VisualAge for C++ for Windows 
  44. (33H4979, 33H4980) and to all subsequent releases and modifications until 
  45. otherwise indicated in new editions.  Make sure you are using the correct 
  46. edition for the level of the product. 
  47.  
  48. This publication could include technical inaccuracies or typographical errors. 
  49. Changes are periodically made to the information herein; any such changes will 
  50. be reported in subsequent revisions. 
  51.  
  52. Requests for publications and for technical information about IBM products 
  53. should be made to your IBM Authorized Dealer or your IBM Marketing 
  54. Representative. 
  55.  
  56. When you send information to IBM, you grant IBM a nonexclusive right to use or 
  57. distribute the information in any ways it believes appropriate without 
  58. incurring any obligation to you. 
  59.  
  60. Any reference to an IBM licensed program in this publication is not intended to 
  61. state or imply that only IBM's licensed program may be used. Any functionally 
  62. equivalent product, program, or service that does not infringe any of IBM's 
  63. intellectual property rights may be used instead of the IBM product, program, 
  64. or service. Evaluation and verification of operation in conjunction with other 
  65. products, except  those expressly designated by IBM, is the user's 
  66. responsibility. 
  67.  
  68. IBM may have patents or pending patent applications covering subject matter in 
  69. this document.  The furnishing of this document does not give you any license 
  70. to these patents.  You can send license inquiries, in writing, to the IBM 
  71. Director of Licensing, IBM Corporation, 500 Columbus Avenue, Thornwood, NY, 
  72. 10594, USA. 
  73.  
  74. Licensees of this program who wish to have information about it for the purpose 
  75. of enabling: (i) the exchange of information between independent created 
  76. programs and other programs (including this one) and (ii) the mutual use of the 
  77. information which has been exchanged, should contact IBM Canada Ltd., 
  78. Department 071, 1150 Eglinton Avenue East, North York, Ontario M3C 1H7, Canada. 
  79. Such information may be available, subject to appropriate terms and conditions, 
  80. including in some cases payment of a fee. 
  81.  
  82. This publication contains examples of data and reports used in daily business 
  83. operations. To illustrate them as completely as possible, the examples include 
  84. the names of individuals, companies, brands, and products. All of these names 
  85. are fictitious and any similarity to the names and addresses used by an actual 
  86. business enterprise is entirely coincidental. 
  87.  
  88.  
  89. ΓòÉΓòÉΓòÉ 1.2. Trademarks and Service Marks ΓòÉΓòÉΓòÉ
  90.  
  91. The following terms used in this publication are trademarks or service marks of 
  92. IBM Corporation in the United States or other countries: 
  93.  
  94.       IBM 
  95.       IBMLink 
  96.       Personal System/2 
  97.       PS/2 
  98.       System Object Model 
  99.       VisualAge 
  100.       WorkFrame 
  101.  
  102.  Windows is a trademark of Microsoft Corporation. 
  103.  
  104.  Other company, product, and service names, which may be denoted by a double 
  105.  asterisk(**), may be trademarks or service marks of others. 
  106.  
  107.  IBM's VisualAge products and services are not associated with or sponsored by 
  108.  Visual Edge Software, Ltd.. 
  109.  
  110.  
  111. ΓòÉΓòÉΓòÉ 1.3. How to Use the Contents ΓòÉΓòÉΓòÉ
  112.  
  113. When the Contents window first appears, some topics have a plus (+) sign beside 
  114. them. The plus sign indicates that additional topics are available. 
  115.  
  116. To expand the Contents if you are using a mouse, click on the plus sign. If you 
  117. are using the keyboard, use the Up or Down Arrow key to highlight the topic, 
  118. and press the Plus (+) key. For example, How to Use the Contents has a plus 
  119. sign beside it.  To see additional topics for that heading, click on the plus 
  120. sign or highlight that topic and press the Plus (+) key. 
  121.  
  122. To view a topic, double-click on the topic (or press the Up or Down Arrow key 
  123. to highlight the topic, and then press the Enter key). 
  124.  
  125.  
  126. ΓòÉΓòÉΓòÉ 1.4. How to Obtain Additional Information ΓòÉΓòÉΓòÉ
  127.  
  128. After you select a topic, the information for that topic appears in a window. 
  129. Highlighted words or phrases indicate that additional information is available. 
  130. Certain words and phrases are highlighted in a different color from the 
  131. surrounding text. These are called hypertext terms. 
  132.  
  133. If you are using a mouse, double-click on the highlighted word.  If you are 
  134. using a keyboard, press the Tab key to move to the highlighted word, and then 
  135. press the Enter key.  Additional information then appears in a window. 
  136.  
  137.  
  138. ΓòÉΓòÉΓòÉ 1.5. How to Use Menu Bar Choices ΓòÉΓòÉΓòÉ
  139.  
  140. Several choices are available for managing the information presented in this 
  141. document. There are three choices on the menu bar: the Services menu, the 
  142. Options menu, and the Help menu. 
  143.  
  144. Use the Services menu to operate the active window currently displayed on the 
  145. screen. Available actions include the following: 
  146.  
  147.  Placing Bookmarks 
  148.    You can set a placeholder so you can retrieve information of interest to 
  149.    you. 
  150.  
  151.  Searching for Information 
  152.    You can find occurrences of a word or phrase in the current topic, selected 
  153.    topics, or all topics. 
  154.  
  155.  Printing Information 
  156.    You can print one or more topics. You can also print a set of topics by 
  157.    first marking the topics in the Contents list. 
  158.  
  159.  Copying Information to a File 
  160.    You can copy a topic that you are viewing to the System Clipboard or to a 
  161.    file that you can edit. This method is particularly useful for copying 
  162.    syntax definitions and program samples into the application that you are 
  163.    developing. 
  164.  
  165.  Select actions from the Options menu, to change the way your Contents list is 
  166.  displayed. To expand the Contents and show all levels for all topics, choose 
  167.  Expand all from the Options pull-down. You can also press the Ctrl, Shift, and 
  168.  * keys together. 
  169.  
  170.  You can select various types of help information from the Help menu. 
  171.  
  172.  For information about any of the menu choices, highlight the choice in the 
  173.  menu and press F1. 
  174.  
  175.  
  176. ΓòÉΓòÉΓòÉ 1.5.1. Placing Bookmarks ΓòÉΓòÉΓòÉ
  177.  
  178. When you place a bookmark on a topic, it is added to a list of bookmarks you 
  179. have previously set.  You can view the list, and you can remove one or all 
  180. bookmarks from the list.  If you have not set any bookmarks, the list is empty. 
  181.  
  182. To set a bookmark, do the following: 
  183.  
  184.    1. Select a topic from the Contents. 
  185.    2. When that topic appears, select the Bookmark option from the Services 
  186.       menu. 
  187.    3. If you want to change the name used for the bookmark, type the new name 
  188.       in the field. 
  189.    4. Click on the Place radio button (or press the Up or Down Arrow key to 
  190.       select it). 
  191.    5. Click on OK (or select it and press Enter). The bookmark is then added to 
  192.       the bookmark list. 
  193.  
  194.  
  195. ΓòÉΓòÉΓòÉ 1.5.2. Searching for Information ΓòÉΓòÉΓòÉ
  196.  
  197. You can specify a word or phrase to be searched.  You can also limit the search 
  198. to a set of topics by first marking the topics in the Contents list. 
  199.  
  200. To search for a word or phrase in all topics, do the following: 
  201.  
  202.    1. Select the Search option from the Services menu. 
  203.    2. Type the word or words to be searched for. 
  204.    3. Click on All sections (or press the Up or Down Arrow keys to select it). 
  205.    4. Click on Search (or select it and press Enter) to begin the search. 
  206.    5. The list of topics where the word or phrase appears is displayed. 
  207.  
  208.  
  209. ΓòÉΓòÉΓòÉ 1.5.3. Printing Information ΓòÉΓòÉΓòÉ
  210.  
  211. You can print one or more topics, the index, or the table of contents.  Make 
  212. sure that your printer is connected to the serial port, configured correctly, 
  213. and ready for input. To print: 
  214.  
  215.    1. Select Print from the Services pull-down menu. 
  216.    2. Select what you want to print. Note that the This section and Marked 
  217.       sections choices are only available if you are viewing a topic or if you 
  218.       have marked topics, respectively.  To mark topics in the table of 
  219.       contents, press the Ctrl key and click on the topics, or use the arrow 
  220.       keys. 
  221.    3. Select Print to print what you've chosen. 
  222.  
  223.  
  224. ΓòÉΓòÉΓòÉ 1.5.4. Copying Information to a File ΓòÉΓòÉΓòÉ
  225.  
  226. You can copy a topic that you are viewing in two ways: 
  227.  
  228.      Copy copies the topic that you are viewing into the System Clipboard. 
  229.  
  230.      Copy to file copies the topic that you are viewing into a temporary file 
  231.       named text.tmp.  You can later edit that file by using any editor. The 
  232.       text.tmp file is placed in the directory where your viewable document 
  233.       resides. This copy function does not apply if you are viewing the 
  234.       document from the CD-ROM. 
  235.  
  236.  To copy a topic, do the following: 
  237.  
  238.    1. Expand the Contents list and select a topic. 
  239.    2. When the topic appears, select Copy to file from the Services menu. 
  240.    3. The system puts the text pertaining to that topic into the temporary file 
  241.       text.tmp. 
  242.  
  243.  
  244. ΓòÉΓòÉΓòÉ 1.6. How to Cut and Paste Examples ΓòÉΓòÉΓòÉ
  245.  
  246. You can copy examples (or information) from this reference/guide/book to 
  247. compile, link, and run them, or to paste them into your own code. 
  248.  
  249. To copy an example or information: 
  250.  
  251.    1. Make the topic you want to copy the active window. 
  252.  
  253.    2. From the Services menu, select Copy to file. The text in that topic is 
  254.       placed in the temporary file text.tmp, in the same directory as this 
  255.       reference. This copy function does not apply if you are viewing the 
  256.       document from the CD-ROM. 
  257.  
  258.    3. You can then modify or use text.tmp as you want. 
  259.  
  260.  Note:  Because the system copies the entire contents of the topic to the file, 
  261.  you may need to edit it to remove additional text. Most examples in this 
  262.  reference are ready to compile, link, and run as they appear, and do not 
  263.  require any editing. 
  264.  
  265.  
  266. ΓòÉΓòÉΓòÉ 1.7. Other Information You Might Find Helpful ΓòÉΓòÉΓòÉ
  267.  
  268. This product provides a number of online guides and references that we hope 
  269. you'll find helpful as you develop applications. This information includes 
  270. User's Guides, References, and How Do I help that gives you specific 
  271. instructions for performing common tasks. You can get to this online 
  272. information from the Information folder inside the main product folder.  You 
  273. can also get to it from the Help menu in any of the components of the product. 
  274.  
  275.  
  276. ΓòÉΓòÉΓòÉ 1.8. Communicating Your Comments to IBM ΓòÉΓòÉΓòÉ
  277.  
  278. If there is something you like, or dislike, about this book, please let us 
  279. know.  You can use one of the methods listed below to send your comments to 
  280. IBM.  Please be sure to include the complete title of the publication that you 
  281. are commenting on. 
  282.  
  283. The comments you send should only pertain to the information in this document 
  284. and its presentation.  To request additional publications or to ask questions 
  285. or make comments about the functions of IBM products or systems, you should 
  286. talk to your IBM representative or your authorized IBM remarketer. 
  287.  
  288. When you send comments to IBM, you grant IBM a nonexclusive right to use or 
  289. distribute your comments in any way it believes appropriate without incurring 
  290. any obligation to you. 
  291.  
  292. You can send your comments to IBM in the following ways: 
  293.  
  294.      By mail to the following address: 
  295.  
  296.             IBM Canada Ltd. Laboratory
  297.             Information Development
  298.             2G/345/1150/TOR
  299.             1150 EGLINTON AVENUE EAST
  300.             NORTH YORK, ONTARIO
  301.             CANADA M3C 1H7
  302.  
  303.      By FAX to the following number: 
  304.  
  305.         -  United States and Canada: (416) 448-6161 
  306.         -  Other countries (+1) 416-448-6161 
  307.  
  308.      By electronic mail to one of the following IDs.  Be sure to include your 
  309.       entire network address if you wish to get a reply. 
  310.  
  311.         -  Internet: torrcf@vnet.ibm.com 
  312.         -  IBMLink: toribm(torrcf) 
  313.         -  IBM/PROFS: torolab4(torrcf) 
  314.         -  IBMMAIL: ibmmail(caibmwt9) 
  315.  
  316.  
  317. ΓòÉΓòÉΓòÉ 2. Introducing IBM VisualAge for C++ for Windows ΓòÉΓòÉΓòÉ
  318.  
  319. IBM VisualAge for C++ for Windows is a comprehensive set of development tools 
  320. for creating 32-bit Windows applications in C and C++. VisualAge for C++ 
  321. includes: 
  322.  
  323.      WorkFrame, the customizable development environment that integrates the 
  324.       VisualAge for C++ tools and lets you plug in other IBM and non-IBM tools 
  325.  
  326.      IBM's optimizing C/C++ compiler with support for templates, exception 
  327.       handling, structured exception handling, 64-bit integers, run time type 
  328.       information (RTTI), precompiled headers, and more 
  329.  
  330.      An optimizing linker, featuring unreferenced code elimination for C and 
  331.       C++, as well as debug data compression 
  332.  
  333.      An integrated library manager for both static and import libraries 
  334.  
  335.      Visual Builder, a graphical tool for creating applications quickly and 
  336.       easily 
  337.  
  338.      A programmable editor with syntax highlighting and other features 
  339.  
  340.      A class browser to display your program elements and relationships in a 
  341.       graphical format 
  342.  
  343.      A source-level debugger, with special features to make debugging C and 
  344.       C++ code easier 
  345.  
  346.      A performance analyzer for tuning your program's performance 
  347.  
  348.      The IBM Open Class Library: 
  349.  
  350.         -  Standard (I/O Stream and Complex mathematics) 
  351.         -  Data Type and Exception (base, exception, string, date, and time 
  352.            classes) 
  353.         -  Collection (generic container classes) 
  354.         -  Database Access (for DB2 and other supported databases) 
  355.         -  User Interface (classes that encapsulate the underlying presentation 
  356.            system to simplify how you develop Windows, OS/2, and Motif 
  357.            applications with graphical user interfaces) 
  358.  
  359.      Toolkit, a set of tools for application development, including a resource 
  360.       compiler and make utility 
  361.  
  362.      Sample programs and information to describe and demonstrate VisualAge for 
  363.       C++ features and coding techniques 
  364.  
  365.  
  366. ΓòÉΓòÉΓòÉ 2.1. About This Booklet ΓòÉΓòÉΓòÉ
  367.  
  368. This booklet describes the VisualAge for C++ installation program, and gives 
  369. you step-by-step instructions on how to install VisualAge for C++ from CD-ROM 
  370. to a LAN or workstation or multiple workstations. It also suggests what you 
  371. should do after you've completed the installation to familiarize yourself with 
  372. VisualAge for C++ and get started using it. 
  373.  
  374. This booklet also gives you a product overview of the VisualAge for C++ 
  375. product. 
  376.  
  377. Before using this booklet or VisualAge for C++ itself, you should be familiar 
  378. with Windows 95, Windows NT, or Windows 3.1. 
  379.  
  380. For additional information about IBM VisualAge for C++ for Windows, see 
  381. VisualAge for C++ Online and Hardcopy Information, which describes all the 
  382. information that comes with VisualAge for C++ and tells you where to find it. 
  383.  
  384.  
  385. ΓòÉΓòÉΓòÉ 3. Before You Begin ΓòÉΓòÉΓòÉ
  386.  
  387. This section contains important information that you should know before 
  388. installing VisualAge for C++.  Hardware and software requirements, as well as 
  389. special considerations for certain types of installations, are described. 
  390.  
  391.  
  392. ΓòÉΓòÉΓòÉ 3.1. Hardware and Software Requirements ΓòÉΓòÉΓòÉ
  393.  
  394.  Processor 
  395.       32-bit processor (80386 minimum; 80486 or higher strongly recommended) 
  396.  
  397.  Display 
  398.       VGA minimum 
  399.       SVGA recommended 
  400.  
  401.  CD-ROM 
  402.       Required 
  403.  
  404.  Mouse or pointing device 
  405.       Required 
  406.  
  407.  Operating System 
  408.       For the development environment, any of the following: 
  409.  
  410.           Windows NT 3.51 or higher 
  411.           Windows 95. 
  412.  
  413.       For the execution environment, any of the following: 
  414.  
  415.           Windows NT 3.51 or higher 
  416.           Windows 95 
  417.           Windows 3.11 with the Win32s V1.3 environment 
  418.           Windows 3.1 with the Win32s V1.3 environment. 
  419.  
  420.  Other Software 
  421.       To use Data Access Class Builder, you need DB2 for Windows NT V2.1, 
  422.       Sybase SQL Server V10, or Oracle V7. 
  423.  
  424.       For remote debugging to Win32s, you need TCP/IP. 
  425.  
  426.  Memory 
  427.       8M minimum for C development (12M recommended) 
  428.       12M minimum for C++ development (16M recommended) 
  429.       16M minimum for C++ Visual development (24M recommended) 
  430.  
  431.       Note:  For Windows NT, add 4M to all memory requirements. 
  432.  
  433.  Disk Space 
  434.       Disk space needs will vary. You can run VisualAge for C++ tool components 
  435.       directly from the CD-ROM, or you can install any or all of the tool 
  436.       components to your disk drive.  If you choose to install all components 
  437.       to your disk drive you will require the following amount of space: 
  438.  
  439.       All tools and toolkits           285M 
  440.       All samples and tutorial         60M 
  441.       All documentation                25M 
  442.  
  443.       You must also have at least 40M available for swap space. 
  444.  
  445.  Time Requirements 
  446.       The following times are based on an installation done on a 90-MHz 
  447.       Pentium, 32 MB, 1 GB drive, double speed CD-ROM computer. Your 
  448.       installation times will depend on the type of hardware you are using, and 
  449.       the number of VisualAge for C++ components you are installing. 
  450.  
  451.       CD-ROM                       1 minute 
  452.       Minimal, to disk drive       15 minutes 
  453.       Complete, to disk drive      40 minutes 
  454.       Custom, to disk              Time will vary according to the type and 
  455.                                    number of components installed to disk. 
  456.  
  457.  
  458. ΓòÉΓòÉΓòÉ 3.2. Special Installation Considerations ΓòÉΓòÉΓòÉ
  459.  
  460. There are several important points to be aware of before beginning an 
  461. installation. 
  462.  
  463.      If you have both Microsoft Visual C++ and VisualAge for C++ installed on 
  464.       the same computer, you may experience problems with header files.  See If 
  465.       Something Goes Wrong for details before continuing. 
  466.  
  467.      On Windows 95 only, your autoexec.bat will be modified by the 
  468.       installation program. A copy of your original, unmodified autoexec.bat 
  469.       file is saved as the next unused file name in the ascending sequence of 
  470.       autoexec.001, autoexec.002, autoexec.003, etc.  A higher number in the 
  471.       file name extension indicates a more recent copy. 
  472.  
  473.      On Windows NT only, the installation program sets VisualAge for C++ 
  474.       environment variables in the user environment for the user logged on at 
  475.       the time of the installation. It does not set these environment variables 
  476.       in the system environment table. Another user will not see the VisualAge 
  477.       for C++ product unless they too have the VisualAge for C++ environment 
  478.       variables set in their user environment. 
  479.  
  480.       You can view and set user environment variables by selecting the SYSTEM 
  481.       icon in the Control Panel folder, which is accessed from the Main folder. 
  482.  
  483.      You can install from either the VisualAge for C++ CD-ROM or from a LAN 
  484.       server. See Preparing for LAN Installation (Optional) for more 
  485.       information about installing from a LAN server. 
  486.  
  487.       You can also install VisualAge for C++ directly onto a LAN server. 
  488.  
  489.      If you are reinstalling VisualAge for C++, you should first do the 
  490.       following: 
  491.  
  492.         1. Delete the VisualAge for C++ installations from your system. 
  493.         2. Reboot your system. 
  494.  
  495.  
  496. ΓòÉΓòÉΓòÉ 3.3. Preparing for LAN Installation (Optional) ΓòÉΓòÉΓòÉ
  497.  
  498. If your workstations are connected to a LAN, you can set up the VisualAge for 
  499. C++ installation files on a LAN server. Individual client workstations can then 
  500. install VisualAge for C++ from the LAN server. 
  501.  
  502. Important! When you install VisualAge for C++ across multiple workstations, 
  503. make sure you observe the license agreement as described in the License 
  504. Information booklet. 
  505.  
  506.  
  507. ΓòÉΓòÉΓòÉ 3.3.1. If you are a LAN user: ΓòÉΓòÉΓòÉ
  508.  
  509. Connect your workstation to the server containing the VisualAge for C++ 
  510. installation files using the net use command: 
  511.  
  512.    net use x: \\machineid\netname
  513. where: 
  514.  
  515.      x is any free drive letter on your system 
  516.      machineid is the network name of the server 
  517.      netname is the directory resource on the server that contains the 
  518.       VisualAge for C++ installation files. 
  519.  
  520.  
  521. ΓòÉΓòÉΓòÉ 3.3.2. If you are a LAN administrator: ΓòÉΓòÉΓòÉ
  522.  
  523.       Follow the steps below to put the appropriate installation files onto the 
  524.       server: 
  525.  
  526.         1. Create a directory on the server that LAN users can access (for 
  527.            example, VACPP). 
  528.         2. Change to the LAN directory. 
  529.         3. Use the xcopy command to copy all the files from the CD-ROM to the 
  530.            server.  If you xcopy the installation image to a server you should 
  531.            ensure the image's main directory is less than 30 characters. The 
  532.            syntax for xcopy is: 
  533.  
  534.                          xcopy d:\*  VACPP /s
  535.            where d is the CD-ROM drive. 
  536.  
  537.            Note:  You do not need to copy the ps and iocsrc directories. 
  538.         4. Notify LAN users of where the installation files are located. 
  539.  
  540.  
  541. ΓòÉΓòÉΓòÉ 4. Installing VisualAge for C++ ΓòÉΓòÉΓòÉ
  542.  
  543. This section gives you step-by-step instructions for each of the VisualAge for 
  544. C++ installation procedures. If you encounter problems with the installation, 
  545. see If Something Goes Wrong. 
  546.  
  547.  
  548. ΓòÉΓòÉΓòÉ 4.1. Choose an Installation Method ΓòÉΓòÉΓòÉ
  549.  
  550. There are four basic types of VisualAge for C++ installation: 
  551.  
  552.    1. Typical (complete) installation 
  553.  
  554.       This procedure installs all files for the components you select to your 
  555.       hard drive. 
  556.  
  557.       Characteristics of a Typical installation include: 
  558.  
  559.           Fastest loading and running of tools. 
  560.           Installation requires the largest amount of disk space. 
  561.           Installation takes the longest amount of time. 
  562.  
  563.    2. Minimal installation 
  564.  
  565.       For the components you select, this procedure installs a minimal number 
  566.       of files (executable and DLL) to your disk drive.  The rest of the files 
  567.       remain on the CD-ROM or on a LAN server, and you access them from there 
  568.       as needed. 
  569.  
  570.       Characteristics of a Minimal installation include: 
  571.  
  572.           Loading and running of tools will be slower than in a Typical 
  573.            installation, but faster than in a CD-ROM installation. 
  574.           Installation requires less disk space than a Typical installation, 
  575.            but more than a CD-ROM installation. 
  576.           Installation takes less time than a Typical installation, but more 
  577.            than a CD-ROM installation. 
  578.  
  579.    3. CD-ROM installation 
  580.  
  581.       For the components you select, this procedure installs only those files 
  582.       that must be local to your hard drive. The rest of the files remain on 
  583.       the CD-ROM or on a LAN server, and you access them from there as needed. 
  584.  
  585.       Characteristics of a CD-ROM installation include: 
  586.  
  587.           Loading and running of tools is slower than other types of 
  588.            installations. 
  589.           Requires a very small amount of disk space. 
  590.           Takes the shortest amount of time to install. 
  591.  
  592.    4. Custom installation 
  593.  
  594.       This procedure lets you choose which components you want to install, and 
  595.       where each of those components is installed. You can always choose to add 
  596.       other components later. 
  597.  
  598.       Characteristics of a Custom installation include: 
  599.  
  600.           Loading and running performance of tools may vary, depending on 
  601.            where you chose to install VisualAge for C++ components. 
  602.           Disk space and installation time requirements will vary, depending 
  603.            on your choice of components and installation locations. 
  604.           Certain components may require other components to also be 
  605.            installed. 
  606.  
  607.  Minimal, CD-ROM, and some Custom installations share the following 
  608.  characteristics: 
  609.  
  610.      You cannot apply corrective service disks (CSDs) to the CD-ROM. If you 
  611.       want to apply fixes to VisualAge for C++ components, you must use a 
  612.       Typical installation. 
  613.  
  614.      You cannot run all of the sample programs from the CD-ROM. Many of the 
  615.       VisualAge for C++ samples generate files, and because the CD-ROM is 
  616.       read-only, you won't be able to run them from the CD-ROM.  You can copy 
  617.       the sample code onto your hard drive, or you can specify options for each 
  618.       sample to create all output files (including temporary files) onto your 
  619.       hard drive. 
  620.  
  621.  
  622. ΓòÉΓòÉΓòÉ 4.1.1. Which Procedure Should I Choose? ΓòÉΓòÉΓòÉ
  623.  
  624. Use Typical installation if: 
  625.  
  626.      You want to maintain files locally on your hard drive 
  627.      You have enough room on your hard drive for the components you want 
  628.      You want to be able to apply corrective service to the product 
  629.      You want the tools to run as fast as possible 
  630.  
  631.  Use Minimal installation if: 
  632.  
  633.      You want to minimize the disk space used on your hard drive, but still 
  634.       want reasonable performance 
  635.  
  636.  Use CD-ROM installation if: 
  637.  
  638.      You want to minimize the disk space used on your hard drive 
  639.      You want to maintain common files on a LAN server for the team to use 
  640.  
  641.  Use Custom installation if: 
  642.  
  643.      You want to be able to make your own decision as to whether to install 
  644.       the component on the hard drive or run it from the CD-ROM or LAN server. 
  645.  
  646.  
  647. ΓòÉΓòÉΓòÉ 4.2. Choose a Target Directory for the Installation ΓòÉΓòÉΓòÉ
  648.  
  649. Please keep the following considerations in mind when choosing a directory in 
  650. which to install VisualAge for C++: 
  651.  
  652.      We do not recommended installing to an operating system partition. 
  653.  
  654.      We strongly recommend you install VisualAge for C++ to a new directory. 
  655.  
  656.      The target directory's name must not be more than 30 characters in 
  657.       length. 
  658.  
  659.  
  660. ΓòÉΓòÉΓòÉ 4.3. Install VisualAge for C++ (Condensed Instructions) ΓòÉΓòÉΓòÉ
  661.  
  662. You can use the instructions in this section to install VisualAge for C++ if: 
  663.  
  664.      you are familiar with installation procedures, and, 
  665.  
  666.      you know where to find the VisualAge for C++ installation files (CD-ROM 
  667.       or LAN server directory), and, 
  668.  
  669.      you have met all requirements specified up to this point in the document. 
  670.  
  671.  You can also use the detailed installation instructions described in Install 
  672.  VisualAge for C++ (Detailed Instructions). 
  673.  
  674.  Condensed Installation Procedure 
  675.  
  676.    1. Verify disk integrity by running scandisk and/or chkdsk on both the 
  677.       operating system partition and the partition where you plan to install 
  678.       VisualAge for C++. 
  679.  
  680.    2. From the command line, change to the directory where the installation 
  681.       program is located (the root directory for CD-ROM; for the LAN server 
  682.       directory name, ask your LAN administrator). 
  683.  
  684.    3. To begin the installation, enter setup from the command line. 
  685.  
  686.    4. Choose the installation method you want: typical, minimal, CD-ROM, 
  687.       custom. 
  688.  
  689.    5. Choose the components and sub-components you want to install. 
  690.  
  691.    6. Specify the drive and directory where you want to install the components. 
  692.  
  693.    7. The Start Copying Files window appears, summarizing the selections you 
  694.       have made. Click on the Next push button to begin the installation, or 
  695.       click on the Back push button to revise your selections. 
  696.  
  697.    8. The Setup Complete window appears when the installation is complete. 
  698.  
  699.       Before you can use VisualAge for C++, you must reboot your computer. 
  700.       Make your selection from the buttons in this window. Click on Yes, I want 
  701.       to restart my computer now or No, I will restart my computer later, then 
  702.       click on the Finish push button. 
  703.  
  704.  
  705. ΓòÉΓòÉΓòÉ 4.4. Install VisualAge for C++ (Detailed Instructions) ΓòÉΓòÉΓòÉ
  706.  
  707. This section includes step-by-step instructions to guide you through the 
  708. VisualAge for C++ installation. 
  709.  
  710.    1. Verify disk integrity by running scandisk and/or chkdsk on both the 
  711.       operating system partition and the partition where you plan to install 
  712.       VisualAge for C++. 
  713.  
  714.    2. Insert the VisualAge for C++ CD-ROM or access the LAN where the VisualAge 
  715.       for C++ image resides. 
  716.  
  717.    3. From the command line, change to the directory where the installation 
  718.       program is located (the root directory for CD-ROM; for the LAN server 
  719.       directory name, ask your LAN administrator). 
  720.  
  721.    4. Read the README.TXT file, found in the same directory as the installation 
  722.       program. This file contains the latest information about VisualAge for 
  723.       C++ changes or restrictions, including those that affect installation. If 
  724.       instructions in the README.TXT file differ from this booklet, follow the 
  725.       README.TXT file. 
  726.  
  727.    5. To begin the installation, enter setup from the command line.  The 
  728.       Welcome to IBM VisualAge for C++ for Windows window appears. 
  729.  
  730.    6. Click on the Next push button to continue with the installation. The IBM 
  731.       VisualAge for C++ for Windows - Setup Options window appears. 
  732.  
  733.  
  734.             IBM VisualAge for C++ for Windows - Setup Options Window
  735.  
  736.    7. The IBM VisualAge for C++ for Windows - Setup Options window shows the 
  737.       following installation methods: 
  738.  
  739.           Typical 
  740.           Minimal 
  741.           CD-ROM 
  742.           Custom 
  743.  
  744.       A Space Required line appears beside each installation method, showing 
  745.       the maximum amount of hard disk space needed to perform that type of 
  746.       installation. For an explanation on what each installation method does, 
  747.       see Choose an Installation Method. 
  748.  
  749.       Note:  Actual disk space requirements displayed may vary from those shown 
  750.       in the IBM VisualAge for C++ for Windows - Setup Options window. 
  751.  
  752.       Select one of the installation methods. The Select VisualAge for C++ for 
  753.       Windows Components window appears. 
  754.  
  755.  
  756.             Select VisualAge for C++ for Windows Components Window
  757.  
  758.    8. The Select VisualAge for C++ for Windows Components window shows a list 
  759.       of components that you can install. 
  760.  
  761.       Initially, all components are selected.  You can select or deselect a 
  762.       component by clicking in the check-mark area to the left of the component 
  763.       name.  You can also clear or set all selections by clicking on the Clear 
  764.       All or Select All push buttons. 
  765.  
  766.       Some components require that you also install other components for them 
  767.       to work correctly.  If you select a component that has such a 
  768.       prerequisite, you will see a Dependent Components Not Selected or 
  769.       Installed window later in the installation, which lists the unfulfilled 
  770.       dependencies. 
  771.  
  772.       Some components have sub-components which may also be installed. To 
  773.       select the sub-components, click on Details (if this Details field is 
  774.       grayed out, then there are no sub-components to install for that 
  775.       component). 
  776.  
  777.       The Space Required field displays the maximum amount of disk space 
  778.       required to install your currently-chosen components and sub-components. 
  779.  
  780.       Note: 
  781.  
  782.         a. You can find out more about a component by looking in the 
  783.            Description window to the right of the component list or, if you are 
  784.            doing a Custom installation, select Description. 
  785.  
  786.         b. For a Custom installation only, you can specify where you want each 
  787.            component installed.  Choose one of: 
  788.  
  789.                Install to Hard Drive, or, 
  790.                Run from CD-ROM. 
  791.  
  792.            If not specified otherwise, component installation defaults to the 
  793.            hard drive. 
  794.  
  795.         c. You do not have to install all the components at once. You can add 
  796.            components later by following the instructions given in Adding 
  797.            Components. You must, however, select at least one component to 
  798.            continue with the installation program. 
  799.  
  800.    9. Specify the drive and directory where you want to install the components, 
  801.       keeping in mind the criteria specified in Choose a Target Directory for 
  802.       the Installation. 
  803.  
  804.       A default drive and directory is provided for you; everything is 
  805.       installed on your boot drive to a single directory called IBMCPPW. You 
  806.       can specify a different drive and/or directory with either of the 
  807.       following methods: 
  808.  
  809.       Method One 
  810.  
  811.                    a. Click on the Browse push button. 
  812.                    b. Select a drive letter from the Drives field, near the 
  813.                       bottom of the Choose Directory window. 
  814.                    c. Click on the OK push button. 
  815.  
  816.                  Note:  This is not the best method for choosing a drive, as it 
  817.                  is primarily intended for choosing a directory. 
  818.  
  819.       Method Two 
  820.  
  821.                    a. Click on the Disk Space push button to see how much space 
  822.                       is available on your hard drive. 
  823.  
  824.                       The disk space window appears and shows you the space 
  825.                       available on all drives, along with the space required 
  826.                       for the components you have chosen. 
  827.  
  828.                       The installation program does not prevent you from 
  829.                       installing to a drive that does not have enough space. If 
  830.                       you do not have enough space, you will receive a notice, 
  831.                       but will still have the choice to proceed or not to 
  832.                       proceed. 
  833.  
  834.                       If you will be overwriting files, you may have enough 
  835.                       space on a drive even though the installation program 
  836.                       shows that you do not. If, however, there is not enough 
  837.                       space, the installation program will fail.  See If 
  838.                       Something Goes Wrong for what to do if the program fails. 
  839.  
  840.                    b. To change the drive, select the drive by clicking on it, 
  841.                       then click on the OK push button. The installation 
  842.                       program updates all of the directory fields to that 
  843.                       drive, but does not change the directory name. 
  844.  
  845.                       To return to the main install window without making any 
  846.                       changes, click on the Cancel push button. 
  847.  
  848.                    c. Choose a directory: 
  849.  
  850.                         1. Click on the Browse push button. 
  851.                         2. Select a drive letter from the Drives field, found 
  852.                            near the bottom of the Choose Directory window. 
  853.                         3. Use the Directories field to select your chosen 
  854.                            directory. 
  855.                         4. Click on the OK push button. 
  856.                         5. Click on the OK push button again. 
  857.  
  858.                       You can also specify a new directory by manually typing 
  859.                       its name in the Path field. If you specify a directory 
  860.                       that does not exist, the system asks you to confirm that 
  861.                       you want the directory created.  Click on the Yes push 
  862.                       button to confirm and create the new directory. 
  863.  
  864.   10. When you've chosen the components to install and specified the 
  865.       destination drive and directory, click on the Next push button. 
  866.  
  867.       If in step 8 above you selected a component that has a prerequisite, but 
  868.       did not also select the prerequisite, the Dependent Components Not 
  869.       Selected or Installed window appears. 
  870.  
  871.       Otherwise, the Start Copying Files window appears. Proceed to step 12. 
  872.  
  873.  
  874.             Dependent Components Not Selected or Installed Window
  875.  
  876.   11. The Dependent Components Not Selected or Installed window lists 
  877.       unfulfilled component prerequisites. To install these prerequisite 
  878.       components, click on the Next push button. 
  879.  
  880.       Note:  If you are doing a Custom installation, prerequisite components 
  881.       listed in this window will be installed to your disk drive unless you 
  882.       specify otherwise.  You can change the installation location of a 
  883.       component by clicking on the Back push button, then selecting one of: 
  884.  
  885.           Install to Hard Drive, or, 
  886.           Run from CD-ROM. 
  887.  
  888.       If all prerequisite components are not installed, components that depend 
  889.       on those prerequisites may not work correctly when you try to use them. 
  890.  
  891.       If you choose to install all components, then all dependencies will be 
  892.       met and you will not get this window. 
  893.  
  894.   12. The Start Copying Files window summarizes the selections you have made. 
  895.  
  896.       If you are satisfied with these selections, click on the Next push button 
  897.       to begin the installation. The Install Progress window appears, and the 
  898.       installation program begins copying files to your disk drive. 
  899.  
  900.       If you are not satisfied with your selections, click on the Back push 
  901.       button and revise your selections. 
  902.  
  903.   13. The Install Progress window displays the progress of the installation. 
  904.       The Setup Complete window will appear when the installation is complete. 
  905.  
  906.       If you want to stop the installation program, click on the Cancel push 
  907.       button.  A window appears asking you to confirm that you want to stop the 
  908.       installation.  Click on one of the following push buttons: 
  909.  
  910.       Exit Setup       Close the window and end the installation program. 
  911.       Resume           Continue installing the product. 
  912.  
  913.   14. Before you can use VisualAge for C++, you must reboot your computer. In 
  914.       the Setup Complete window, choose one of: 
  915.  
  916.           Yes, I want to restart my computer now, or, 
  917.           No, I will restart my computer later. 
  918.  
  919.       Click on the Finish push button to exit from the installation program. 
  920.  
  921.  You have now successfully installed VisualAge for C++, and are ready to go! 
  922.  See Now That You've Installed VisualAge for C++ for what to do next. 
  923.  
  924.  
  925. ΓòÉΓòÉΓòÉ 4.5. Install Win32s Support (Optional) ΓòÉΓòÉΓòÉ
  926.  
  927. To run VisualAge for C++ applications on a machine using the Windows 3.1 or 
  928. Windows 3.11 operating system, you must upgrade your system to include the 
  929. Win32s 1.3 subsystem. Disk images for the Win32s subsystem are located in the 
  930. following directory: 
  931.  
  932.   \IBMCPPW\SDK\DISKS\RETAIL\OLE32S
  933. To install this subsystem on your Windows 3.1 or 3.11 machine, do the 
  934. following: 
  935.  
  936.      Run the setup.exe program in the DISK1 subdirectory, or, 
  937.  
  938.      Create diskettes from these subdirectories, then run the setup.exe 
  939.       program on the diskette created from the DISK1 subdirectory. 
  940.  
  941.  To debug programs on a Windows 3.1 or Windows 3.11 machine, copy the 
  942.  idebugp.exe program from the bin directory on the VisualAge for C++ CD-ROM. 
  943.  You can find instructions for using the idebugp.exe program in the VisualAge 
  944.  for C++ User's Guide. 
  945.  
  946.  For information on developing VisualAge for C++ applications for the Win32s 
  947.  environment, see the IBM VisualAge for C++ for Windows Programming Guide. 
  948.  
  949.  
  950. ΓòÉΓòÉΓòÉ 5. Adding Components ΓòÉΓòÉΓòÉ
  951.  
  952. Once VisualAge for C++ has been installed, you still have the opportunity to 
  953. install additional components. 
  954.  
  955. Use the installation program to add VisualAge for C++ components.  The steps 
  956. involved are as follows: 
  957.  
  958.    1. Insert the VisualAge for C++ CD-ROM or access the LAN where the VisualAge 
  959.       for C++ image resides. 
  960.  
  961.    2. From the command line, change to the directory where the installation 
  962.       program is located (the root directory for CD-ROM; for the LAN server 
  963.       directory name, ask your LAN administrator). 
  964.  
  965.    3. To begin the installation, enter setup from the command line.  The 
  966.       Welcome to IBM VisualAge for C++ for Windows window appears. 
  967.  
  968.    4. Click on the Next push button to continue with the installation. The IBM 
  969.       VisualAge for C++ for Windows - Setup Options window appears. 
  970.  
  971.    5. The IBM VisualAge for C++ for Windows Setup Options window shows the 
  972.       following installation methods: 
  973.  
  974.           Typical 
  975.           Minimal 
  976.           CD-ROM 
  977.           Custom 
  978.  
  979.       Select one of the installation methods. The Select VisualAge for C++ for 
  980.       Windows Components window appears. 
  981.  
  982.    6. The Select VisualAge for C++ for Windows Components window shows a list 
  983.       of components that you can install. 
  984.  
  985.       Initially, all components are selected.  You can select or deselect a 
  986.       component by clicking in the check-mark area to the left of the component 
  987.       name.  You can also clear or set all selections by clicking on the Clear 
  988.       All or Select All push buttons. 
  989.  
  990.       Some components require that you also install other components for them 
  991.       to work correctly.  If you select a component that has such a 
  992.       prerequisite, you will see a Dependent Components Not Selected or 
  993.       Installed window later in the installation, which lists the unfulfilled 
  994.       dependencies. 
  995.  
  996.       Some components have sub-components which may also be installed. To 
  997.       select the sub-components, click on Details (if this Details field is 
  998.       grayed out, then there are no sub-components to install for that 
  999.       component). 
  1000.  
  1001.       The Space Required field displays the maximum amount of disk space 
  1002.       required to install your currently-chosen components and sub-components. 
  1003.  
  1004.       Note: 
  1005.  
  1006.         a. You can find out more about a component by looking in the 
  1007.            Description window to the right of the component list or, if you are 
  1008.            doing a Custom installation, select Description. 
  1009.  
  1010.         b. For a Custom installation only, you can specify where you want each 
  1011.            component installed.  Choose: 
  1012.  
  1013.                Install to Hard Drive, or, 
  1014.                Run from CD-ROM. 
  1015.  
  1016.            If not specified otherwise, component installation defaults to the 
  1017.            hard drive. 
  1018.  
  1019.         c. You must select at least one component to continue with the 
  1020.            installation program. 
  1021.  
  1022.    7. When you have chosen the components you want to install, click on the 
  1023.       Next push button. 
  1024.  
  1025.       If in step 6 above you selected a component that has a prerequisite, but 
  1026.       did not also select the prerequisite, the Dependent Components Not 
  1027.       Selected or Installed window appears. 
  1028.  
  1029.       Otherwise, the Start Copying Files window appears. Proceed to step 9 
  1030.       below. 
  1031.  
  1032.    8. The Dependent Components Not Selected or Installed window lists 
  1033.       unfulfilled component prerequisites. To install these prerequisite 
  1034.       components, click on the Next push button. 
  1035.  
  1036.       Note:  If you are doing a Custom installation, prerequisite components 
  1037.       listed in this window will be installed to your disk drive unless you 
  1038.       specify otherwise.  You can change the installation location of a 
  1039.       component by clicking on the Back push button, then selecting one of: 
  1040.  
  1041.           Install to Hard Drive, or, 
  1042.           Run from CD-ROM. 
  1043.  
  1044.       If all prerequisite components are not installed, components that depend 
  1045.       on those prerequisites may not work correctly when you try to use them. 
  1046.  
  1047.       If you choose to install all components, then all dependencies will be 
  1048.       met and you will not get this window. 
  1049.  
  1050.    9. The Start Copying Files window summarizes the selections you have made. 
  1051.  
  1052.       If you are satisfied with these selections, click on the Next push button 
  1053.       to begin the installation. The Install Progress window appears, and the 
  1054.       installation program begins copying files to your disk drive. 
  1055.  
  1056.       If you are not satisfied with your selections, click on the Back push 
  1057.       button and revise your selections. 
  1058.  
  1059.   10. The Install Progress window displays the progress of the installation. 
  1060.       The Setup Complete window will appear when the installation is complete. 
  1061.  
  1062.       If you want to stop the installation program, click on the Cancel push 
  1063.       button.  A window appears asking you to confirm that you want to stop the 
  1064.       installation.  Click on one of the following push buttons: 
  1065.  
  1066.       Exit Setup       Close the window and end the installation program. 
  1067.       Resume           Continue installing the product. 
  1068.  
  1069.   11. Before you can use VisualAge for C++, you must reboot your computer. In 
  1070.       the Setup Complete window, choose one of: 
  1071.  
  1072.           Yes, I want to restart my computer now, or, 
  1073.           No, I will restart my computer later. 
  1074.  
  1075.       Click on the Finish push button to exit from the installation program. 
  1076.  
  1077.  You have now successfully added components. 
  1078.  
  1079.  
  1080. ΓòÉΓòÉΓòÉ 6. Installation Utilities ΓòÉΓòÉΓòÉ
  1081.  
  1082. To update your desktop, delete components and the entire IBM VisualAge for C++ 
  1083. for Windows product, use the Installation Utilities program as described in 
  1084. this section. 
  1085.  
  1086.  
  1087. ΓòÉΓòÉΓòÉ 6.1. Updating Your Desktop ΓòÉΓòÉΓòÉ
  1088.  
  1089. If you erase or change the VisualAge for C++ desktop folders, you can rebuild 
  1090. them in one of two ways.  Method One 
  1091.  
  1092.    1. On a command line, type CPPUTILS and press enter. The IBM VisualAge for 
  1093.       C++ for Windows - Installation Utilities window appears. 
  1094.  
  1095.  
  1096.             IBM VisualAge for C++ for Windows - Installation Utilities Window
  1097.  
  1098.    2. Press the Rebuild the desktop button in the IBM VisualAge for C++ for 
  1099.       Windows - Installation Utilities window. You will see a message that the 
  1100.       desktop has been successfully updated. 
  1101.  
  1102.  Method Two 
  1103.  
  1104.  This method assumes that you can still get to your desktop and can see the 
  1105.  Installation Utilities icon.  If not, use Method One. 
  1106.  
  1107.    1. Click on the Installation Utilities icon found in the main VisualAge for 
  1108.       C++ window. The IBM VisualAge for C++ for Windows - Installation 
  1109.       Utilities window appears. 
  1110.  
  1111.    2. Press the Rebuild the desktop button in the IBM VisualAge for C++ for 
  1112.       Windows - Installation Utilities window. You will see a message that the 
  1113.       desktop has been successfully updated. 
  1114.  
  1115.  
  1116. ΓòÉΓòÉΓòÉ 6.2. Deleting Components and VisualAge for C++ ΓòÉΓòÉΓòÉ
  1117.  
  1118. To delete or reinstall a component, you must first delete the entire VisualAge 
  1119. for C++ product. 
  1120.  
  1121. Note: The VisualAge for C++ deletion program looks for and uses the user 
  1122. environment variables defined by the installation program. If you are deleting 
  1123. VisualAge for C++ immediately after installing it, you must first reboot your 
  1124. system to set those user environment variables. 
  1125.  
  1126. To delete VisualAge for C++, do the following: 
  1127.  
  1128.    1. Click on the Installation Utilities icon found in the main VisualAge for 
  1129.       C++ window. The IBM VisualAge for C++ for Windows - Installation 
  1130.       Utilities window appears. 
  1131.  
  1132.    2. Click on the Delete IBM VisualAge for C++ for Windows push button in IBM 
  1133.       VisualAge for C++ for Windows - Installation Utilities window. A 
  1134.       confirmation window appears. 
  1135.  
  1136.    3. Click on the Yes push button to continue deleting the VisualAge for C++ 
  1137.       product from your disk drive. 
  1138.  
  1139.       The installation program begins deleting files from your target 
  1140.       installation directory. Note that any file in the target installation 
  1141.       directory, whether it be your own or one from the VisualAge for C++ 
  1142.       product, is deleted. 
  1143.  
  1144.       When complete, you will see a message that VisualAge for C++ has been 
  1145.       successfully deleted. 
  1146.  
  1147.    4. Shut down and reboot your system. 
  1148.  
  1149.  
  1150.   IBM VisualAge for C++ for Windows - Installation Utilities Window
  1151.  
  1152.  Note: 
  1153.  
  1154.    1. If VisualAge for C++ files are locked or in use during product deletion, 
  1155.       the deletion process will fail, and a message is displayed. 
  1156.  
  1157.       To recover from a failed VisualAge for C++ product deletion, do the 
  1158.       following: 
  1159.  
  1160.         a. Shut down and reboot your system. 
  1161.         b. On Windows NT, go to the File Manager icon in the main VisualAge for 
  1162.            C++ window and manually delete the rest of the product. 
  1163.  
  1164.            On Windows 95, use Windows Explorer, found under the programs group 
  1165.            to manually delete the rest of the product. 
  1166.  
  1167.    2. If for any reason you do not have an Installation Utilities icon, you can 
  1168.       delete VisualAge for C++ by typing CPPUTILS at a command line and 
  1169.       pressing the Enter key. When the IBM VisualAge for C++ for Windows - 
  1170.       Installation Utilities window appears, press the Delete IBM VisualAge for 
  1171.       C++ for Windows button to start deleting the product files. 
  1172.  
  1173.  
  1174. ΓòÉΓòÉΓòÉ 7. Now That You've Installed VisualAge for C++ ΓòÉΓòÉΓòÉ
  1175.  
  1176. After you've successfully installed VisualAge for C++, you probably want to see 
  1177. what you have and find out how to get started. 
  1178.  
  1179.  
  1180. ΓòÉΓòÉΓòÉ 7.1. What Do You Have? ΓòÉΓòÉΓòÉ
  1181.  
  1182. You should see the VisualAge for C++ window on your desktop for Windows NT, or 
  1183. in your programs group for Windows 95. If you installed all VisualAge for C++ 
  1184. components, the product folder will look similar to that shown below. 
  1185.  
  1186.  
  1187. VisualAge for C++ Folder
  1188.  
  1189. Descriptions of each icon follow: 
  1190.  
  1191. This is the README.TXT file that you read during the installation procedure. 
  1192. It contains information about any last-minute changes to VisualAge for C++ that 
  1193. could not be documented elsewhere.  If the README.TXT conflicts with 
  1194. information in other books or files, please follow the README.TXT file. 
  1195.  
  1196. This is an interactive tour of VisualAge for C++ that introduces the 
  1197. development environment and tools. 
  1198.  
  1199. This icon contains the online information for VisualAge for C++, including 
  1200. user's guides and frequently asked questions. For a description of the online 
  1201. information included, see VisualAge for C++ Online and Hardcopy Information. 
  1202.  
  1203. This icon contains sample programs that demonstrate different programming 
  1204. techniques using VisualAge for C++. 
  1205.  
  1206. Select this icon to open a Windows command line which already has all the 
  1207. environment variables set for the VisualAge for C++ compiler. 
  1208.  
  1209. Select this icon if you want a view of your project that puts all the tools and 
  1210. information in one window for easy and fast access. 
  1211.  
  1212. Select this icon to use IBM's fully integrated, language-sensitive programmer's 
  1213. editor. 
  1214.  
  1215. Select this icon to help you find and fix coding errors. 
  1216.  
  1217. Select this icon to display your program elements and relationships in a 
  1218. graphical format. 
  1219.  
  1220. Select this icon to time and tune your applications, analyze program hangs and 
  1221. deadlocks, view multithread, interactions and better understand your code.  It 
  1222. gives you a view of your program's run-time behavior you just can't get through 
  1223. debuggers or browsers. 
  1224.  
  1225. Select this icon to rapidly prototype and build Windows applications complete 
  1226. with all standard Windows and OS/2 controls.  In addition, the builder lets you 
  1227. use the advanced IBM Open Class Library extensions, such as canvases and 
  1228. graphic pushbuttons. 
  1229.  
  1230. Select this icon to create new object-oriented database applications more 
  1231. quickly and reliably by having the builder generate the source code for you. 
  1232.  
  1233. Select this icon to rebuild your desktop or delete VisualAge for C++. 
  1234.  
  1235. Select this icon to create, modify, and compile windows resources for your 
  1236. application. 
  1237.  
  1238. If you installed VisualAge for C++ Win32 SDK Tools, you will see another window 
  1239. on your desktop for Windows NT or in your programs folder for Windows 95.  For 
  1240. a description of the icons in this window, click on the Online Information icon 
  1241. in the main VisualAge for C++ window. 
  1242.  
  1243.  
  1244. ΓòÉΓòÉΓòÉ 7.2. What Do You Do Next? ΓòÉΓòÉΓòÉ
  1245.  
  1246. The online tutorial is an interactive tour of the product that introduces the 
  1247. WorkFrame development environment and the VisualAge for C++ tools using sample 
  1248. projects and a simple program example. We recommend you try this tour to 
  1249. familiarize yourself with using VisualAge for C++. 
  1250.  
  1251. Help for tasks associated with the VisualAge for C++ tools is available from 
  1252. the How Do I... icon in the main VisualAge for C++ folder. The Debugger, 
  1253. Performance Analyzer, Browser, WorkFrame, Data Access Builder, Editor, and 
  1254. Visual Builder also provide this task help from their Help menus and contextual 
  1255. help panels. 
  1256.  
  1257. The Visual Builder User's Guide contains a chapter that takes you through the 
  1258. development of a simple application using Visual Builder. The Open Class 
  1259. Library User's Guide provides a short Collection class tutorial and shows you 
  1260. how to rewrite a simple application using the User Interface classes. 
  1261.  
  1262. You can get to all of this information from the Help menu of each tool.  For 
  1263. more details on VisualAge for C++, see VisualAge for C++ Online and Hardcopy 
  1264. Information. 
  1265.  
  1266. You've installed the product, read the introductory material, and you're ready 
  1267. to go! We hope you enjoy using IBM VisualAge for C++ for Windows. 
  1268.  
  1269.  
  1270. ΓòÉΓòÉΓòÉ 8. If Something Goes Wrong ΓòÉΓòÉΓòÉ
  1271.  
  1272. This section tells you what to do if you encounter a problem or an error when 
  1273. you run the installation program. 
  1274.  
  1275.  
  1276. ΓòÉΓòÉΓòÉ 8.1. If the Component Requires Another Component ΓòÉΓòÉΓòÉ
  1277.  
  1278. Many of the VisualAge for C++ components require that other components be 
  1279. installed for them to work correctly. If you select a component to install 
  1280. without selecting its prerequisite, you will get a Dependent Components Not 
  1281. Selected or Installed window listing the dependencies.  Everything in the list 
  1282. will automatically be installed for you, so you can proceed by clicking on 
  1283. Next. 
  1284.  
  1285. Note:  If you are doing a custom installation, by default, all of the 
  1286. prerequisite components will be placed on your hard drive. By selecting back 
  1287. you can make your own installation choice; Install to Hard Drive or Run from 
  1288. CD-ROM. 
  1289.  
  1290.  
  1291. ΓòÉΓòÉΓòÉ 8.2. If the Installation Program Fails While Copying Files ΓòÉΓòÉΓòÉ
  1292.  
  1293. If the installation program fails while it is copying files, take note of the 
  1294. error(s) you receive.  Common errors are: 
  1295.  
  1296.      The directory where your paging file or swap file resides is out of 
  1297.       space. 
  1298.      There is not enough space on your target disk. 
  1299.      The target drive may be severely fragmented.  In this case, you should 
  1300.       run scandisk, chkdsk, or format and try again. 
  1301.      A target file is readonly, hidden, or locked. 
  1302.      The installation is receiving errors, timeouts, etc., while copying files 
  1303.       from the CD-ROM or LAN server.  This can be caused by: 
  1304.         -  the server being overloaded if you are installing from a LAN server. 
  1305.         -  a CD device driver problem if you are installing from a CD-ROM. 
  1306.      The installation will automatically retry file copies. If you receive an 
  1307.       abort, retry, ignore, or go dialog pressing retry usually bypasses this 
  1308.       problem. 
  1309.      If you are installing from a LAN server, you may not be authorized to 
  1310.       access files and/or subdirectories that you need. If you are installing 
  1311.       to a server, you may not be authorized to create files and/or 
  1312.       subdirectories on the server.  In either case see if you can manually 
  1313.       copy files or create directories. 
  1314.      A Windows full-screen exception or trap error occurs when performing the 
  1315.       installation on Windows 95.  Press the Enter key, and the installation 
  1316.       should continue without error.  In general, you should not have to press 
  1317.       Ctrl-Alt-Del in this situation. 
  1318.  
  1319.  
  1320. ΓòÉΓòÉΓòÉ 8.3. If You Receive an Abort, Retry, Ignore, Go Window ΓòÉΓòÉΓòÉ
  1321.  
  1322. If the installation program fails while: 
  1323.  
  1324.    1. Copying files 
  1325.    2. Updating the desktop 
  1326.    3. Updating the registry 
  1327.    4. Updating the autoexec.bat file 
  1328.    5. Updating Workframe sample projects 
  1329.  it will display a window giving you the following choices: 
  1330.  
  1331.  Abort     This stops the installation. 
  1332.  
  1333.  Retry     The action, if available, will be retried. 
  1334.  
  1335.  Ignore    The last action you were trying to perform will be ignored and the 
  1336.            installation will continue. 
  1337.  
  1338.  Go        The installation will ignore any similar errors it encounters. For 
  1339.            example, if a file copy fails and you select Go, the installation 
  1340.            will continue and any further file copy errors the system encounters 
  1341.            will be ignored. 
  1342.  
  1343.  
  1344. ΓòÉΓòÉΓòÉ 8.4. Network Neighborhood on Windows 95 ΓòÉΓòÉΓòÉ
  1345.  
  1346. Network Neighborhood on Windows 95 should not be used to call setup because 
  1347. your autoexec.bat file may get updated with the \\server\alias line in the 
  1348. environment variable settings rather than x:\ (x being a partition name). 
  1349. VisualAge for C++ may not function under this condition.  This will also lead 
  1350. to a very long path name in your autoexec.bat file. 
  1351.  
  1352. Do not use Network Neighborhood on Windows 95 to call setup. 
  1353.  
  1354.  
  1355. ΓòÉΓòÉΓòÉ 8.5. The CD-ROM Installation Is Taking Too Long ΓòÉΓòÉΓòÉ
  1356.  
  1357. When doing a CD-ROM installation or installing from a server you may find that 
  1358. it is taking an excessively long time and may even be giving you a number of 
  1359. file copy retry messages. 
  1360.  
  1361. Write down the error message that is being displayed.  You may also want to 
  1362. keep track of the number of retries the system is performing. The installation 
  1363. displays the retries in the Install Progress window. 
  1364.  
  1365. Retries or failures can occur when the CD-ROM drive and/or device driver are 
  1366. not functioning properly or if a server is overloaded.  Usually pressing the 
  1367. Retry push button in the error message window, once or as many times as 
  1368. prompted by the system will correct this problem.  If this does not work try to 
  1369. xcopy the files directly from the CD-ROM or server to determine if the same 
  1370. problems occur. 
  1371.  
  1372.  
  1373. ΓòÉΓòÉΓòÉ 8.6. If You Receive an "Out of environment space" Message on Windows 95 ΓòÉΓòÉΓòÉ
  1374.  
  1375. The "Out of environment space" message could occur on Windows 95 in one of two 
  1376. instances: 
  1377.  
  1378.    1. When the operating system runs the autoexec.bat file at bootup time 
  1379.  
  1380.    2. When running the vacppenv.bat command 
  1381.  In both instances try one of the following solutions: 
  1382.  
  1383.    1. Change the CommandEnvSize variable in the system.ini file, found in the 
  1384.       c:\windows directory. This will increase the size of the environment 
  1385.       variable space.  How much you increase the size depends on what else is 
  1386.       in the autoexec.bat file.  For example, you could change the variable as 
  1387.       follows: 
  1388.  
  1389.             [NonWindowsApp]
  1390.             CommandEnvSize=10000
  1391.  
  1392.    2. Create a config.sys file with the following statement: 
  1393.  
  1394.             SHELL=C:\COMMAND.COM /p /e:15000
  1395.  
  1396.    3. Go back to the original autoexec.bat file (the file called autoexec.###) 
  1397.       and compare it with the new autoexec.bat file. Identify the changes made 
  1398.       by the VisualAge for C++ installation and modify the autoexec.bat file 
  1399.       manually, as required. 
  1400.  
  1401.  
  1402. ΓòÉΓòÉΓòÉ 8.7. On Windows 95, You Have Run Out of Disk Space ΓòÉΓòÉΓòÉ
  1403.  
  1404. If you run out of disk space on Windows 95, use Windows Explorer from the 
  1405. programs group, to determine if there are any files on the target drive in the 
  1406. recycling bin.  If there are, remove them to free up some disk space. 
  1407.  
  1408.  
  1409. ΓòÉΓòÉΓòÉ 8.8. On Windows 95, the Operating System Will Not Come Up ΓòÉΓòÉΓòÉ
  1410.  
  1411. On Windows 95, if you reboot your system and the operating system comes up with 
  1412. an error stating that the win.com file cannot be found make sure you have a 
  1413. semicolon at the end of any path statements that appear before the VisualAge 
  1414. for C++ path statement in your autoexec.bat file. 
  1415.  
  1416.  
  1417. ΓòÉΓòÉΓòÉ 8.9. If a Tool Does Not Work or a DLL Is Not Found ΓòÉΓòÉΓòÉ
  1418.  
  1419. If one of the following problems occur on Windows 95, then you may be out of 
  1420. environment space: 
  1421.  
  1422.    1. A tool you installed does not work when you try to use it. 
  1423.  
  1424.    2. You get an error that a DLL file is not found, but when checking the 
  1425.       autoexec.bat file you find the path is set correctly. 
  1426.  
  1427.  Make sure all of the environment variable settings have been loaded into the 
  1428.  operating system at boot up, by typing set in an MS-DOS prompt window. 
  1429.  
  1430.  
  1431. ΓòÉΓòÉΓòÉ 8.10. If You Have Problems with Header Files ΓòÉΓòÉΓòÉ
  1432.  
  1433. If you have both Microsoft Visual C++ and VisualAge for C++ installed on the 
  1434. same computer and are getting Microsoft header files instead of VisualAge for 
  1435. C++ header files manipulate your Include environment variable to put the 
  1436. VisualAge for C++ headers first or remove the Microsoft headers entirely. 
  1437.  
  1438.  
  1439. ΓòÉΓòÉΓòÉ 8.11. If Some Samples Will Not Run ΓòÉΓòÉΓòÉ
  1440.  
  1441. By default, sample programs are compiled with the Performance Analyzer 
  1442. installed and the /Gh switch on. If you have not installed the Performance 
  1443. Analyzer, your samples may not run. 
  1444.  
  1445.  
  1446. ΓòÉΓòÉΓòÉ 8.12. If You Can't Delete an Object Because It's in Use ΓòÉΓòÉΓòÉ
  1447.  
  1448. When you delete VisualAge for C++, if any objects or files are in use, they are 
  1449. not deleted. A message informs you when this happens and instructs you to 
  1450. remove them manually.  Shutdown and reboot your system. On Windows NT, go to 
  1451. the File Manager icon in the main VisualAge for C++ window and manually delete 
  1452. the rest of the product.  On Windows 95, use Windows Explorer, found in the 
  1453. programs group. 
  1454.  
  1455.  
  1456. ΓòÉΓòÉΓòÉ 8.13. You Accidentally Deleted Your Desktop ΓòÉΓòÉΓòÉ
  1457.  
  1458. If you accidentally deleted your desktop, go to a command line and type 
  1459. CPPUTILS. The IBM VisualAge for C++ for Windows - Installation Utilities panel 
  1460. will appear and from here you press the Rebuild the desktop button. 
  1461.  
  1462. You receive a message that the desktop has been successfully updated. 
  1463.  
  1464.  
  1465. ΓòÉΓòÉΓòÉ 8.14. If Folders and Registry Updates Disappear ΓòÉΓòÉΓòÉ
  1466.  
  1467. If you are installing under Windows NT with a userid that has guest access, 
  1468. registry updates and folders created during the installation may not remain 
  1469. after logging off. 
  1470.  
  1471. Install VisualAge for C++ from a userid that does not have guest access. 
  1472.  
  1473.  
  1474. ΓòÉΓòÉΓòÉ 8.15. If Bitmaps Are Discolored or Distorted ΓòÉΓòÉΓòÉ
  1475.  
  1476. After entering setup to begin the installation, you may find the bitmaps being 
  1477. displayed are discolored or distorted.  This may indicate that other 
  1478. applications were running when the setup command was issued. 
  1479.  
  1480. This will not have an affect on the success or failure of the installation. 
  1481. However, if you would like to display the bitmaps correctly, you may exit the 
  1482. installation program and reissue the setup command. To exit the installation 
  1483. program, click on Cancel in the Install Progress window. A window appears 
  1484. asking you to confirm you want to stop the installation; select Exit Setup to 
  1485. close the window and end the installation program.  To continue installing the 
  1486. program, select Resume. 
  1487.  
  1488.  
  1489. ΓòÉΓòÉΓòÉ 8.16. If You Have Tried Everything and It Still Does Not Work ΓòÉΓòÉΓòÉ
  1490.  
  1491. If the installation program continues to fail after you have tried everything 
  1492. suggested in this section, contact VisualAge for C++ Service and Support. 
  1493.  
  1494. Make sure you have the following information available, to give them when they 
  1495. ask: 
  1496.  
  1497.    1. The type of computer you are using 
  1498.  
  1499.    2. The type of processor 
  1500.  
  1501.    3. How much RAM you have 
  1502.  
  1503.    4. The amount of hard disk space you have on the target drive and any 
  1504.       operating system partition 
  1505.  
  1506.    5. The settings in your autoexec.bat file, or if this is unavailable, the 
  1507.       settings in the standard vacppenv.bat file that is created when you 
  1508.       install VisualAge for C++ 
  1509.  
  1510.    6. A list of the components you have installed 
  1511.  
  1512.    7. Whether you installed from a CD-ROM or a LAN server 
  1513.  
  1514.    8. The operating system you are using: Windows NT or Windows 95 
  1515.  
  1516.    9. Any error messages you may have received 
  1517.  
  1518.   10. Any other information you believe to be important 
  1519.  
  1520.  You can contact Service and Support by: 
  1521.  
  1522.  Compuserve                    GO VISUAL 
  1523.  
  1524.  IBMLink/ServiceLink/TalkLink  For information on subscribing to these 
  1525.                                services, please call: 
  1526.  
  1527.                                1-800-547-1283  (USA) 
  1528.  
  1529.                                1-800-465-7999 ext. 228 (CANADA) 
  1530.  
  1531.  Internet                      vacppwin@vnet.ibm.com 
  1532.  
  1533.                                http://www.software.ibm.com/ad/visualage_c++ 
  1534.  
  1535.  Telephone                     1-800-992-4777 in North America 
  1536.                                Outside North America, contact your local IBM 
  1537.                                branch. 
  1538.  
  1539.  For details on all the VisualAge for C++ Service and Support offerings, see 
  1540.  the card HELP!! and how to get it included with the IBM VisualAge for C++ for 
  1541.  Windows product. 
  1542.  
  1543.  
  1544. ΓòÉΓòÉΓòÉ 9. VisualAge for C++ Product Overview ΓòÉΓòÉΓòÉ
  1545.  
  1546.      To Help You Get Started... 
  1547.  
  1548.      To Help You Code... 
  1549.  
  1550.      To Help You Generate Fast Applications... 
  1551.  
  1552.      To Help You Test and Debug... 
  1553.  
  1554.  
  1555. ΓòÉΓòÉΓòÉ 9.1. To Help You Get Started... ΓòÉΓòÉΓòÉ
  1556.  
  1557. Programmers have indicated they want simple and quick access to help when 
  1558. getting started. This release has been designed to provide you instant access 
  1559. to the power of VisualAge for C++ with: 
  1560.  
  1561.      A main folder with all the tools and documentation of VisualAge for C++ 
  1562.       for Windows. 
  1563.      An overall product tutorial. 
  1564.      An Information Notebook - Page tabs give you access to information 
  1565.       grouped under User's Guides, References, and How Do I help. 
  1566.      Sample Programs Notebook with accompanying documentation. You select a 
  1567.       sample category (one of the notebook tabs).  From this page you can open 
  1568.       the README.TXT file for the sample and you can also open the sample 
  1569.       within a WorkFrame project. 
  1570.  
  1571.  
  1572. ΓòÉΓòÉΓòÉ 9.1.1. Project Smarts ΓòÉΓòÉΓòÉ
  1573.  
  1574. Project Smarts gives you a suite of projects which help you get started on your 
  1575. application as quickly as possible.  You select the type of project you want to 
  1576. create and how you want to customize it. Project Smarts creates a complete 
  1577. boilerplate application which you can then customize to meet your needs.  An 
  1578. example of a project type is a User Interface Class Library DLL.  Press Done, 
  1579. after specifying some customization options and a project is created with a set 
  1580. of template files that will compile to build a working DLL.  You don't need to 
  1581. learn which compile or link options are required, nor which libraries you need 
  1582. to include. 
  1583.  
  1584.  
  1585. ΓòÉΓòÉΓòÉ 9.1.2. WorkFrame ΓòÉΓòÉΓòÉ
  1586.  
  1587. WorkFrame gives you a view of your project that puts all the tools and 
  1588. information in one window for easy and fast access. No matter what the 
  1589. complexity of the number of projects a developer has to deal with, WorkFrame 
  1590. provides the required access in an optimized way. 
  1591.  
  1592. Highlights of WorkFrame are: 
  1593.  
  1594.      Build Smarts provide a quick way to switch between the most common build 
  1595.       options. Simply tell us if your code needs to be debugged, optimized, or 
  1596.       browsed, and leave the details of changing compiler and linker options to 
  1597.       VisualAge for C++. If you want to deal with the full breadth of our 
  1598.       compiler's flexibility, access to our compiler and link options, via 
  1599.       dialog boxes, is still provided. 
  1600.  
  1601.      There is a menubar and toolbar in each project window.  For those more 
  1602.       comfortable with direct manipulation, you can use popup menus to start 
  1603.       actions or perform file operations. 
  1604.  
  1605.      Intuitive and Capable Projects - tools launched from projects have access 
  1606.       to all actions defined in the project. So when you pick source files to 
  1607.       edit, you can ask for the project to be built right from the editor. When 
  1608.       the project builds cleanly, you can start the debugger (or any other tool 
  1609.       you like), also right from the editor. 
  1610.  
  1611.  
  1612. ΓòÉΓòÉΓòÉ 9.2. To Help You Code... ΓòÉΓòÉΓòÉ
  1613.  
  1614.      Visual Application Builder - An Object-Oriented Visual Application 
  1615.       Builder 
  1616.  
  1617.      Data Access Class Builder - Build Classes to Access Relational Data 
  1618.  
  1619.      IBM Open Class Library - A Comprehensive Set of C++ Building Blocks 
  1620.  
  1621.      VisualAge Browser - Fast, Easy Access to Program Information 
  1622.  
  1623.      VisualAge Editor - A Powerful, Language-Sensitive Editor 
  1624.  
  1625.      Resource Workshop 
  1626.  
  1627.  
  1628. ΓòÉΓòÉΓòÉ 9.2.1. Visual Application Builder - An Object-Oriented Visual Application Builder ΓòÉΓòÉΓòÉ
  1629.  
  1630. With Visual Builder, you can rapidly prototype and build Windows applications 
  1631. complete with all standard OS/2 and Windows controls, such as menu bars, 
  1632. listboxes, etc, but in addition the builder lets you use the advanced IBM Open 
  1633. Class Library extensions, such as canvases and graphic pushbuttons. It is an 
  1634. advanced object-oriented visual application development environment. 
  1635.  
  1636. The Visual Builder includes: 
  1637.  
  1638.      A powerful visual editor that enables you to create complete 
  1639.       applications, often without writing code 
  1640.  
  1641.      An extensive library of prefabricated graphical user interface (GUI) 
  1642.       parts plus program logic parts for application logic that are not part of 
  1643.       the user interface 
  1644.  
  1645.      C++ language support for creating new parts 
  1646.  
  1647.      C++ code generator 
  1648.  
  1649.  Use Visual Builder to connect the graphical user interface to the logic and 
  1650.  data of your application, then automatically generate the C++ source code. 
  1651.  Prefabricated parts are supplied, but its capabilities are not limited to 
  1652.  using just these parts. You can take advantage of the extensibility of Visual 
  1653.  Application Builder by creating and adding your own reusable code to the parts 
  1654.  palette. You can also import these parts from other applications or export 
  1655.  these parts to other applications. The parts are actually treated as classes 
  1656.  by Visual Builder. By developing a library of your own unique parts, tailored 
  1657.  to the special requirements of your business, you can create even large and 
  1658.  complex applications simply by visually arranging and connecting parts. 
  1659.  
  1660.  Visual Application Builder helps realize the advantages of OO programming, the 
  1661.  ability to reduce programming time and improve code quality, by making it easy 
  1662.  and practical to develop using a library of reusable components. 
  1663.  
  1664.  
  1665. ΓòÉΓòÉΓòÉ 9.2.2. Data Access Class Builder - Build Classes to Access Relational Data ΓòÉΓòÉΓòÉ
  1666.  
  1667. Do your applications need to work with a relational database? Accessing data 
  1668. through C++ classes was once a labor-intensive and error-prone chore. The Data 
  1669. Access Class Builder allows you to create new object-oriented database 
  1670. applications more quickly and reliably by generating the source code for you. 
  1671. Add, update, delete, and retrieve methods are generated to manipulate data 
  1672. stored in DB2, Sybase or Oracle relational databases.  Session control for 
  1673. multiple connections and transaction scoping is provided with the Data Access 
  1674. Class Library. 
  1675.  
  1676. The generated database code can be used directly in your programs, or you can 
  1677. import them into the Visual Application Builder.  By using Visual Builder to 
  1678. connect them to the GUI or other parts, you can quickly create high quality 
  1679. applications. 
  1680.  
  1681. Some of the key features of Data Access Class Builder are: 
  1682.  
  1683.      Map Tables to Classes - Create new classes using your existing database 
  1684.       tables.  You can create one class, or many classes, from any table.  Both 
  1685.       C++ and SOM IDL code are supported. 
  1686.  
  1687.      Quick or custom mapping - The Data Access Class Builder offers a quick 
  1688.       map feature that allows you to do column-to-attribute mapping. By using 
  1689.       inheritance, you are able to customize your classes to suit your needs. 
  1690.  
  1691.      Visual display of your mapping - The Data Access Class Builder 
  1692.       graphically displays the mapping of your database tables to the object 
  1693.       classes.  This view allows visual editing and uses icons for tables and 
  1694.       classes and relationship links to show the mappings. 
  1695.  
  1696.      Connection and transaction services - A class library is provided for 
  1697.       multiple connection and disconnection from your databases. In addition, 
  1698.       commit and rollback operations are provided to handle transaction 
  1699.       services. 
  1700.  
  1701.      DB2 family support - Access DB2 in a stand-alone environment or access a 
  1702.       remote DB2 through the DB2 Client Application Enabler and DDCS is 
  1703.       supported. 
  1704.  
  1705.      Sybase and Oracle access - Access for Sybase and Oracle relational 
  1706.       databases is provided through the ODBC interface (new for the Windows 
  1707.       version). 
  1708.  
  1709.  
  1710. ΓòÉΓòÉΓòÉ 9.2.3. IBM Open Class Library - A Comprehensive Set of C++ Building Blocks ΓòÉΓòÉΓòÉ
  1711.  
  1712. The IBM Open Class Library provides you with a variety of building blocks to 
  1713. use in your C++ programs. Many of the fundamental components of C++ 
  1714. applications have been provided as reusable, extensible classes. Whether you 
  1715. are a novice programmer or expert developer, the IBM Open Class Library can 
  1716. help you dramatically reduce your programming effort and avoid coding errors. 
  1717. That's because the IBM Open Class Library offers you a comprehensive set of 
  1718. classes: from basic input/output operations and string handling to multimedia 
  1719. and user interface support. The IBM Open Class Library brings you the true 
  1720. power of object-oriented programming technology. 
  1721.  
  1722. Classes in the IBM Open Class Library support consistent programming interfaces 
  1723. across the entire range of platforms supported by VisualAge for C++: OS/2, AIX, 
  1724. MVS/ESA, OS/400, Sun Solaris** and Windows. This makes cross-platform porting 
  1725. faster, easier, and less error-prone. Following the documented guidelines, an 
  1726. application written to the core classes in Open Class can be easily ported to 
  1727. the other operating system environments. Use the powerful programming 
  1728. abstractions in the IBM Open Class Library rather than the low-level 
  1729. system-specific APIs. This can help reduce the amount of platform-specific code 
  1730. in your application. 
  1731.  
  1732. Because the C/C++ language standard and class libraries were designed for 
  1733. portability, programs written for VisualAge for C++ for OS/2 can be recompiled 
  1734. with minimal system-specific coding required. The resulting application will 
  1735. have the "look and feel" of a native Windows application. Optionally, 
  1736. applications can have the IBM CUA look and feel through the use of style 
  1737. options. 
  1738.  
  1739. These classes help build robust, reliable applications, having been tested and 
  1740. used extensively, including in IBM's own products. 
  1741.  
  1742. The five parts of the IBM Open Class Library are: 
  1743.  
  1744.      Collection Classes offers a complete set of abstract data types like 
  1745.       sequences, sets, bags, trees, and so on. Some of the unique value the 
  1746.       Collection Class delivers include: 
  1747.  
  1748.         -  Performance Tuning Facilities - - the classes are designed and 
  1749.            implemented for optimum application performance. There are several 
  1750.            underlying implementations to chose from, each optimized for 
  1751.            different requirements: array, linked list, hash table, AVL tree and 
  1752.            B*-tree. All provide the same programming interface; as you tune the 
  1753.            performance of your application, you can select the best underlying 
  1754.            implementation for the same data type abstraction, with minor source 
  1755.            code changes. 
  1756.  
  1757.         -  Completeness of abstract data types (for instance, all abstract data 
  1758.            types have both sorted and keyed version). 
  1759.  
  1760.         -  Consistent interface and functionality for all methods in all 
  1761.            collections 
  1762.  
  1763.         -  Very flexible parameterization, (for instance, you can implement 
  1764.            your own memory manager) 
  1765.  
  1766.         -  Very flexible definition of element operations (default equality and 
  1767.            comparison operators can be overridden with your own definition). 
  1768.  
  1769.       Collection Class SmartGuide: 
  1770.  
  1771.       VisualAge C++ comes with the Collection Class SmartGuide that helps you 
  1772.       choose the appropriate Collection Class type for your application. The 
  1773.       SmartGuide accomplishes this by asking you a series of questions about 
  1774.       the properties of the class that you want to use, like use of keys and 
  1775.       element equality. 
  1776.  
  1777.       Based on your selections, the SmartGuide chooses the proper class and 
  1778.       generates code that includes the element type and key type. 
  1779.  
  1780.       The Collection Class SmartGuide can be invoked from the Editor menu bar 
  1781.       each time you edit a .cpp or .c file. 
  1782.  
  1783.       For more information on how to use the Collection Class SmartGuide, see 
  1784.       the Open Class Library User's Guide. 
  1785.  
  1786.      Compound Document Framework within the IBM Open Class reduces the effort 
  1787.       of developing OLE 2 containers and servers by generating most of the 
  1788.       default behavior for the application developer.  The framework is 
  1789.       intended to provide a part architecture that will be consistent across 
  1790.       both OLE 2 and OpenDoc. The Framework, which is the first injection of 
  1791.       Taligent Technology into IBM Open Class, provides an abstraction from OLE 
  1792.       2 into higher-level classes. The framework reduces the coding of an OLE 2 
  1793.       component from a very large number of low-level OLE 2 API calls to a very 
  1794.       small number of Compound Document Framework overrides. These include: 
  1795.  
  1796.         -  OLE 2 drag and drop 
  1797.         -  OLE 2 cut, copy, and paste 
  1798.         -  OLE 2 embedding 
  1799.         -  OLE 2 linking In other words, the framework generates most of the 
  1800.       default behavior that an OLE 2 container or server needs. The framework 
  1801.       also provides the basis for a portability layer between the OLE 2 
  1802.       component architecture and OpenDoc. 
  1803.  
  1804.       Coding to the Framework also provides a model/view separation to the 
  1805.       container or server, even without the use of OLE. This reduces 
  1806.       maintenance of an application by isolating model (data) objects from view 
  1807.       (presentation) objects. 
  1808.  
  1809.      User Interface Classes provide a consistent set of classes for 
  1810.       programming graphical user interfaces on OS/2, AIX, Solaris, and Windows. 
  1811.       These classes simplify the coding of GUI applications and result in a 
  1812.       more portable, reusable OO user interface. IBM Open Class Library gives 
  1813.       you a consistent way to write user interface code without having to 
  1814.       program to the low-level system APIs. The IBM Open Class Library exploits 
  1815.       the underlying operating system services for you; for example, the user 
  1816.       interface classes exploit Motif** services on AIX and Presentation 
  1817.       Manager services on OS/2. (There are some platform extensions in each 
  1818.       environment that have been noted in the IBM Open Class Library 
  1819.       documentation.) 
  1820.  
  1821.       Using the User Interface Class Library, you can easily and quickly: 
  1822.  
  1823.         -  Create and display windows using title bars, varying sizes and 
  1824.            styles, and more 
  1825.         -  Include controls such as menus, buttons, text, list boxes, sliders, 
  1826.            notebooks, and containers, with new support for animated pushbuttons 
  1827.         -  Draw canvases with flexible window layouts that allow automatic 
  1828.            redrawing and aligning of cells independent of the display device 
  1829.         -  Provide direct manipulation (drag/drop) support 
  1830.         -  Add multimedia with classes for constructing many different devices, 
  1831.            like a MIDI sequencer, wave file playing and editing, digital video 
  1832.            players/recorders, and programmable CD players 
  1833.         -  Provide 2-D graphics support for drawing primitives (lines and 
  1834.            arcs), plus support for reading and displaying various graphic 
  1835.            formats, such as GIF, PIF, BMP, and others 
  1836.         -  Create and manage a tool bar, including being able to move, change, 
  1837.            and resize it 
  1838.         -  Create parts, using the parts notification framework, for the new 
  1839.            Visual Builder. 
  1840.         -  Communicate between applications running on the same machine using 
  1841.            DDE (Dynamic Data Exchange) 
  1842.         -  Display help, define contextual help, and handle help keys, plus use 
  1843.            new fly-over help that comes up automatically when the mouse pointer 
  1844.            is on an object 
  1845.         -  Cut, copy, and paste to and from the clipboard 
  1846.  
  1847.       You can use all of these classes as provided or extend and tailor them, 
  1848.       and combine them with the other class libraries to easily develop 
  1849.       complete object-oriented applications. 
  1850.  
  1851.      Application Support Classes provide the basic abstractions needed during 
  1852.       the creation of most C++ applications, the date and time classes provide 
  1853.       you with data types to store and manipulate date and time information. 
  1854.       The exception classes provide the framework for throwing exceptions 
  1855.       within the class libraries. The trace class helps in tracing exceptions. 
  1856.  
  1857.      Standard Class Library consists of the de facto standard I/O Stream 
  1858.       library for C++ input and output, and the Complex library for 
  1859.       manipulating complex (imaginary) numbers. 
  1860.  
  1861.  
  1862. ΓòÉΓòÉΓòÉ 9.2.4. VisualAge Browser - Fast, Easy Access to Program Information ΓòÉΓòÉΓòÉ
  1863.  
  1864. The introduction of the OO paradigm in C++ has resulted in a marked shift in 
  1865. programming techniques and requirements.  If you are a C programmer, you deal 
  1866. with large collections of modules, data types, or functions.  As a C++ 
  1867. programmer, you now must deal with large and sometimes complex collections of 
  1868. interrelated classes in class libraries. The Browser helps you understand and 
  1869. use these class libraries with the following features: 
  1870.  
  1871.      It displays the subtle nuances of C++ inheritance, including the 
  1872.       complexities of multiple inheritance. 
  1873.  
  1874.      It presents complex C++ programs and class libraries quickly, in an 
  1875.       accurate, easily understood graphical format. Other class browsers might 
  1876.       be equally fast, but they require you to recognize and filter invalid 
  1877.       data. 
  1878.  
  1879.      It allows you to browse C++ source code without needing to compile first, 
  1880.       by using the built-in QuickBrowse feature.  Other browsers require you to 
  1881.       be able to either compile or even link your program or library before you 
  1882.       can browse its contents. 
  1883.  
  1884.      It uses the simple object-action paradigm. You select something, and the 
  1885.       second mouse button gives you a list of actions available for the object 
  1886.       that you have selected. 
  1887.  
  1888.      A novel approach to displaying class members (using an IBM Open Class 
  1889.       container object) allows you to focus in on the aspects of a class that 
  1890.       you are interested in without introducing cumbersome interfaces such as 
  1891.       filters, SQL (or worse, non-SQL) querying mechanisms. 
  1892.  
  1893.      You can trace the static call graph of functions to understand who is 
  1894.       calling whom, even in very complex applications. 
  1895.  
  1896.      The web of file inclusions is displayed graphically.  This helps you 
  1897.       understand the complex nature of file inclusion that is frequently a 
  1898.       result of programming with class libraries. 
  1899.  
  1900.      You can determine what possible types of C++ exceptions can be thrown if 
  1901.       a function is called.  This can help you react to all possible error 
  1902.       conditions that the function could encounter. 
  1903.  
  1904.  The Browser also comes with a full complement of "bells and whistles": 
  1905.  
  1906.      You can customize the user interface: colors, line styles, fonts, 
  1907.       double-click semantics, and the amount of assistance that you receive. 
  1908.  
  1909.      You can print or save any image: flat files or WYSIWYG. You can create 
  1910.       bitmap files and then use them in your program documentation. 
  1911.  
  1912.      You can take advantage of multiple windows to see more than one thing at 
  1913.       a time.  For instance, you can keep a list of class names available, and 
  1914.       also look at a particular class details. 
  1915.  
  1916.      The Browser supports SOM objects, and is integrated with the debugger, 
  1917.       editor, and compiler. 
  1918.  
  1919.  
  1920. ΓòÉΓòÉΓòÉ 9.2.5. VisualAge Editor - A Powerful, Language-Sensitive Editor ΓòÉΓòÉΓòÉ
  1921.  
  1922. A powerful 32-bit editor has been integrated into VisualAge for C++'s suite of 
  1923. tools. This editor is fast, simple to use, helpful, and easily modified to meet 
  1924. your personal preferences. 
  1925.  
  1926. You can compile, browse, make, build, debug, or issue other VisualAge for C++ 
  1927. commands without leaving the editor. It performs all the common editing tasks 
  1928. such as insert, delete, split and join lines, find, block and manipulate text, 
  1929. undo changes, create and find marks, and move between different source file 
  1930. views.  However, it does much more to help make programming simple and 
  1931. error-free: 
  1932.  
  1933.      It is language-sensitive, with highlighting in different fonts and colors 
  1934.       for different types of language constructs. Automatic indenting and 
  1935.       dynamic error checking is provided. You can correct your work by quickly 
  1936.       navigating through each error without having to compile or leave the 
  1937.       editor. 
  1938.  
  1939.      The editor helps you to review and understand the code by presenting 
  1940.       several views of the source.  For example, display only function headers 
  1941.       in the file to quickly see what is in the file and locate a function of 
  1942.       interest.  You can also display the program's flow of control, or insert 
  1943.       programming templates. 
  1944.  
  1945.      The editor is fully customizable.  You can: 
  1946.  
  1947.         -  Change key assignments 
  1948.  
  1949.         -  Write external commands to extend editor capability 
  1950.  
  1951.         -  Create additional parsers 
  1952.  
  1953.         -  Configure the tool bar 
  1954.  
  1955.         -  Select a "personality" (It supports the look and feel of many common 
  1956.            editors, such as BRIEF or EPM.) 
  1957.  
  1958.      Finally, you can record a sequence of keyboard events as an editor macro 
  1959.       command and then modify it to be reused as an external command. 
  1960.  
  1961.  
  1962. ΓòÉΓòÉΓòÉ 9.2.6. Resource Workshop ΓòÉΓòÉΓòÉ
  1963.  
  1964. Create the Windows resources that you need for your application using the 
  1965. Resource Workshop. This utility provides an integrated environment of 
  1966. specialized editors for creating, modifying, and compiling the following 
  1967. resources for your Windows applications: 
  1968.  
  1969.  
  1970.      o Menus                   o Bitmaps
  1971.  
  1972.      o Dialog boxes            o String tables
  1973.  
  1974.      o Cursors                 o Accelerator keys
  1975.  
  1976.      o Icons                   o Fonts
  1977.  
  1978.      o Version information     o User-defined data
  1979.  
  1980. If you are migrating your applications from OS/2, use the Resource Image 
  1981. Conversion Utility to convert your existing OS/2 icons and bitmaps to Windows 
  1982. format. 
  1983.  
  1984. You have the choice of creating help which can be displayed by the Information 
  1985. Presentation Facility (IPF), or through the native Windows help management 
  1986. system. 
  1987.  
  1988.  
  1989. ΓòÉΓòÉΓòÉ 9.3. To Help You Generate Fast Applications... ΓòÉΓòÉΓòÉ
  1990.  
  1991.      C/C++ Compiler  - Generate Highly Optimized 32-bit code 
  1992.  
  1993.      Direct-to-SOM (DTS) 
  1994.  
  1995.      Performance Execution Trace Analyzer - Time and Tune Your Code 
  1996.  
  1997.  
  1998. ΓòÉΓòÉΓòÉ 9.3.1. C/C++ Compiler  - Generate Highly Optimized 32-bit code ΓòÉΓòÉΓòÉ
  1999.  
  2000. Applications that perform well require tools that generate highly optimized 
  2001. code and make efficient use of disk and memory space.  The VisualAge for C++ 
  2002. compiler and linker represent state-of-the-art technology; the applications you 
  2003. write will be fast and will not hog your system's resource.  Code can be 
  2004. optimized for any Intel architecture processor from the 386 to the Pentium, 
  2005. including the new Pentium Pro chip. VisualAge includes the Win32s library, 
  2006. providing everything you need to target Windows 3.1 systems. Advanced C++ 
  2007. features such as run-time type information (RTTI) are available, and the C 
  2008. compiler supports structured exception handling. To produce the most efficient 
  2009. code possible, VisualAge for C++ uses advanced optimization techniques such as: 
  2010.  
  2011.      Instruction scheduling 
  2012.  
  2013.      Global register allocation 
  2014.  
  2015.      User code inlining 
  2016.  
  2017.      Intermodule optimizations 
  2018.  
  2019.  However, the benefits of efficient code can be reduced by inefficient use of 
  2020.  resources such as memory.  The new memory management algorithms used in the C 
  2021.  and C++ run times are highly efficient in their use of memory, dramatically 
  2022.  reducing the amount of memory overhead in your program. 
  2023.  
  2024.  If you need to minimize how much disk space your application uses, VisualAge 
  2025.  for C++ offers an "optimize for size" option that minimizes the size of the 
  2026.  code produced, but still runs efficiently.  Disk space can also be reduced 
  2027.  with our smart linking support that will find and remove unused code from your 
  2028.  executable.  While generating code for debugging, you can save disk space with 
  2029.  our new debug packing support, which can drastically reduce the size of 
  2030.  debug-ready executables without any loss of debug information.  Also, the 
  2031.  "line number only" option provides reduced debug support, but generates an 
  2032.  executable only slightly larger than a program without any debug support. 
  2033.  
  2034.  Memory leaks are a common problem in C and C++ programming, and one of the 
  2035.  most difficult types to diagnose.  We've extensively enhanced our memory 
  2036.  debugging support to help you find those persistent problems. For example, 
  2037.  VisualAge for C++ run time provides full debug support of heap and leak 
  2038.  detection. 
  2039.  
  2040.  Memory management has also been enhanced by providing support for multiple 
  2041.  heaps and shared memory.  VisualAge for C++ also includes support for user 
  2042.  heaps such as transparent allocations from private heaps using malloc/new. 
  2043.  This capability gives you even more flexibility in implementing your 
  2044.  applications. 
  2045.  
  2046.  Finally, conformance to the following industry standards protects your 
  2047.  investment and allows you to write portable code: 
  2048.  
  2049.      ANSI C X3.159-1989 and ISO 9899:1990 (1992) C conformance 
  2050.      Japanese MIA standards conformance 
  2051.      C++ Draft Standard X3J16 Sept 1992  (plus RTTI) 
  2052.      NIST Standard FIPS PUB 160C. 
  2053.  
  2054.  
  2055. ΓòÉΓòÉΓòÉ 9.3.2. Direct-to-SOM (DTS) ΓòÉΓòÉΓòÉ
  2056.  
  2057. Direct-to-SOM (DTS) is an exciting new technology that combines familiar and 
  2058. powerful standard C++ syntax with the robustness and portability of IBM's 
  2059. System Object Model (SOM). DTS is not a tool, but a standard for implementing 
  2060. flexible and reusable objects, supported by the tools of VisualAge for C++. 
  2061.  
  2062. To build a SOM object, it was once necessary to go through the time-consuming 
  2063. process of: 
  2064.  
  2065.      writing IDL (Interface Definition Language) 
  2066.      generating C++ bindings with the SOM compiler 
  2067.      compiling C++ files with the C++ compiler 
  2068.  Now you can generate SOM objects at the current SOM 2.1 level that OS/2 uses, 
  2069.  directly from the C++ compiler, simply by turning on a compiler option.  And 
  2070.  the compiler will also generate the corresponding OMG CORBA-compliant IDL for 
  2071.  inter-language or DSOM applications. The VisualAge Browser shows SOM objects 
  2072.  in a different color than  C++ objects. The data access builder has options 
  2073.  that generate SOM classes (or IDL code). Best of all, the VisualAge Debugger 
  2074.  now lets you browse and debug SOM objects as easily as regular C++ objects. 
  2075.  
  2076.  DTS has several advantages over native C++ programs: 
  2077.  
  2078.      Release to release binary compatibility (RRBC)  breaks the tight 
  2079.       dependency between the code that implements a class and the client code 
  2080.       that uses it. RRBC allows you to create and deploy a new version of a 
  2081.       class with added function or data members, and even inherit from new base 
  2082.       classes, without requiring an unchanged client to be recompiled. By 
  2083.       packaging your SOM class in a DLL, you can replace an old DLL with the 
  2084.       new one, and all applications that used it will continue to run. 
  2085.  
  2086.      Extensive dynamic facilities allow you to query the properties of objects 
  2087.       and classes, and the use of classes and methods whose names are not known 
  2088.       until execution time. This allows a degree of flexibility and 
  2089.       configurability familiar to programmers using Smalltalk or the OS/2 
  2090.       Workplace Shell.  Applications can be extended by incrementally 
  2091.       installing new classes that the application is told about through a 
  2092.       configuration file or even by end user input. 
  2093.  
  2094.  If you are an experienced SOM user, who programmed SOM from C or non-DTS C++, 
  2095.  you will welcome the power and flexibility that DTS provides. And, because you 
  2096.  write C++ directly, you can use C++ features in your SOM classes used by C++ 
  2097.  clients that weren't available before DTS; features like templates, operators, 
  2098.  constructors with parameters, default parameters, static members, and more. 
  2099.  
  2100.  
  2101. ΓòÉΓòÉΓòÉ 9.3.3. Performance Execution Trace Analyzer - Time and Tune Your Code ΓòÉΓòÉΓòÉ
  2102.  
  2103. This tool enables you to time and tune your applications, analyze program hangs 
  2104. and deadlocks, view multithread interactions, and better understand your code. 
  2105. It gives you a view of your program's run-time behavior you just can't get 
  2106. through debuggers or browsers. By collecting execution trace data and 
  2107. presenting it in several graphical diagrams, Performance Analyzer can provide 
  2108. information on: 
  2109.  
  2110.      Timing and tuning:  The trace file contains a detailed record of function 
  2111.       calls and returns.  Performance Analyzer can display the trace in a 
  2112.       chronologically-scaled format.  This helps you find the "hot spots" in 
  2113.       the code and the cause of those hot spots. 
  2114.  
  2115.      Program hangs and deadlocks:  Performance Analyzer provides a complete 
  2116.       history of the events leading up to the point the program stopped.  You 
  2117.       can view the function call stack any place in the application. 
  2118.  
  2119.      Multi-thread interactions:  You can look at the sequencing of procedures 
  2120.       across threads, which can make problems with critical sections visible. 
  2121.  
  2122.  
  2123. ΓòÉΓòÉΓòÉ 9.4. To Help You Test and Debug... ΓòÉΓòÉΓòÉ
  2124.  
  2125. VisualAge Debugger - Find and Fix Coding Errors Fast 
  2126.  
  2127. Your ability to develop robust software quickly and efficiently is directly 
  2128. related to how fast you can find and fix coding errors.  The debugger is your 
  2129. primary tool for this process. 
  2130.  
  2131. Efficiency comes from debugging at the source level, which means that you can 
  2132. look at your code exactly as you wrote it.  Efficiency also comes from an 
  2133. optimized user interface that provides access to all the common debugger 
  2134. functions with a single mouse click; these include step, run, set/reset 
  2135. breakpoints, monitor variables, display call stack, display registers, and 
  2136. display storage. 
  2137.  
  2138. In addition to all the functions commonly expected in a state-of-the-art 
  2139. debugger, the Debugger also provides an array of unique built-in tools to help 
  2140. locate problems and fix code quickly: 
  2141.  
  2142.      Debug on demand enables you to open a debugging session whenever an error 
  2143.       occurs in your application. For example, if an unhandled exception occurs 
  2144.       and the debug-on-demand feature is enabled, the debugger is notified that 
  2145.       an error has occurred.  The debugger starts and attaches to your 
  2146.       application at the point of fault.  This can save you time because you do 
  2147.       not have to recreate errors. Your application will run at full speed 
  2148.       without any interference from the debugger until an exception is 
  2149.       encountered. 
  2150.  
  2151.       VisualAge C++ can start debug on demand for any application that fails 
  2152.       while it is running, even if the application does not contain debug 
  2153.       information. With debug on demand, it is possible to find and fix the 
  2154.       problem in the application and let it continue running. 
  2155.  
  2156.      C++ debugging features include template support, locate overloaded 
  2157.       functions, class display, and debugging code in include files. 
  2158.  
  2159.      Automatic heap checking helps to isolate memory management problems by 
  2160.       checking for memory overwriting each time your program stops executing. 
  2161.  
  2162.      Supports multithread Windows NT / Windows95 applications.  It also can 
  2163.       debug Win32s applications running on a Windows 3.11 system remotely. 
  2164.  
  2165.  Naturally, since it is fully integrated with the rest of the tools of 
  2166.  VisualAge for C++, you can edit, browse, or recompile your code directly from 
  2167.  your debugger session. 
  2168.  
  2169.  
  2170. ΓòÉΓòÉΓòÉ 10. VisualAge for C++ Online and Hardcopy Information ΓòÉΓòÉΓòÉ
  2171.  
  2172. This section describes the online information available to you, as well as the 
  2173. hardcopy books that come with IBM VisualAge for C++ for Windows. 
  2174.  
  2175.  
  2176. ΓòÉΓòÉΓòÉ 10.1. Online Information ΓòÉΓòÉΓòÉ
  2177.  
  2178. You can access the online information in several ways: 
  2179.  
  2180.      From the Help menu in any tool. 
  2181.  
  2182.      From the Editor, Browser, Debugger, Performance Analyzer, Data Access 
  2183.       Builder, or Visual Builder interface, by putting your cursor on a keyword 
  2184.       and pressing F1 (for the Editor) or Ctrl-H (for the others). 
  2185.  
  2186.      By issuing the iview command from a command line. The installation 
  2187.       routine stores the online document files in the \IBMCPPW\HELP directory. 
  2188.       To view the Language Reference, for example, make C:\IBMCPPW\HELP your 
  2189.       current directory (substituting the drive where you installed VisualAge 
  2190.       for C++ for C:) and enter the following command: 
  2191.  
  2192.                  IVIEW CPPLNG.INF
  2193.       If you want to get information on a specific topic, you can specify a 
  2194.       word or a series of words after the filename.  If the words appear in an 
  2195.       entry in the table of contents or the index, the online document is 
  2196.       opened to the associated section. For example, if you want to read the 
  2197.       section on operator precedence in the Language Reference, you can enter 
  2198.       the following command: 
  2199.  
  2200.                  IVIEW CPPLNG.INF OPERATOR PRECEDENCE
  2201.  
  2202.  In the Help menu, in addition to the usual help topics, we have added a How Do 
  2203.  I choice for the tool you are currently using, as well as entries for all of 
  2204.  the online books. We have divided the online information into different 
  2205.  categories to make it easier to find what you need. 
  2206.  
  2207.  
  2208.   Help Menu Contents
  2209.  
  2210.  Select the arrow next to the menu choice to see the books in that category. 
  2211.  (They are described on the following pages.) 
  2212.  
  2213.      At A Glance provides general information about VisualAge for C++. 
  2214.      Using VisualAge for C++ provides information about how to use the 
  2215.       VisualAge for C++ tools. 
  2216.      How Do I... Selections provides step-by-step instructions on how to 
  2217.       perform various tasks. 
  2218.      C/C++ provides details on C and C++ programming techniques, as well as 
  2219.       language constructs and library functions. 
  2220.      Class Libraries describes the IBM Open Class Library. 
  2221.      Visual Programming describes how to use Visual Builder to create 
  2222.       applications. 
  2223.      IPF and Editing provides information on using the Editor and creating 
  2224.       online information. 
  2225.      SOM describes how to create SOM applications. 
  2226.      Windows Programming provides online help for windows programming. 
  2227.  
  2228.  
  2229. ΓòÉΓòÉΓòÉ 10.1.1. At a Glance ΓòÉΓòÉΓòÉ
  2230.  
  2231.  Installation Guide and Product Overview 
  2232.       Gives you details on how to install VisualAge for C++ and a general 
  2233.       overview of the product. 
  2234.  
  2235.  Frequently Asked Questions 
  2236.       Provides answers to the questions that our customers ask most often. 
  2237.  
  2238.  
  2239. ΓòÉΓòÉΓòÉ 10.1.2. Using VisualAge for C++ ΓòÉΓòÉΓòÉ
  2240.  
  2241.  User's Guide 
  2242.       Tells you how to use the VisualAge for C++ tools, including the 
  2243.       WorkFrame, editor, compiler, linker, debugger, browser, Performance 
  2244.       Analyzer, and utilities. It also describes the options and commands for 
  2245.       these tools. 
  2246.  
  2247.       Each choice in the Using VisualAge for C++ menu takes you to the 
  2248.       appropriate section in the User's Guide. For example, selecting Browsing 
  2249.       opens the User's Guide to the section on using the Browser. 
  2250.  
  2251.  
  2252. ΓòÉΓòÉΓòÉ 10.1.3. How Do I... Selections ΓòÉΓòÉΓòÉ
  2253.  
  2254. Each choice in the menu takes you to step-by-step instructions for performing 
  2255. tasks with that tool. For example, selecting Debugger takes you to the task 
  2256. help for the debugger.  Selecting Overall opens the help for general VisualAge 
  2257. for C++ tasks that involve more than one tool. 
  2258.  
  2259. To see step-by-step instructions for the tool you are currently using, select 
  2260. How do I... from the first grouping of topics in the Help menu. 
  2261.  
  2262. The desktop icons for the How Do I help are in the How Do I folder. 
  2263.  
  2264.  
  2265. ΓòÉΓòÉΓòÉ 10.1.4. C/C++ ΓòÉΓòÉΓòÉ
  2266.  
  2267.  Programming Guide 
  2268.       Describes different C and C++ programming techniques, such as building 
  2269.       DLLs and using templates. 
  2270.  
  2271.  C Library Reference 
  2272.       Describes the C library functions. 
  2273.  
  2274.  Language Reference 
  2275.       Describes the language elements of both C and C++. 
  2276.  
  2277.  
  2278. ΓòÉΓòÉΓòÉ 10.1.5. Class Libraries ΓòÉΓòÉΓòÉ
  2279.  
  2280.  Open Class Library User's Guide 
  2281.       Tells you how to use the class libraries that comprise IBM Open Class in 
  2282.       your C++ programs. 
  2283.  
  2284.  Open Class Library Reference 
  2285.       Describes the class libraries that comprise IBM Open Class. 
  2286.  
  2287.  
  2288. ΓòÉΓòÉΓòÉ 10.1.6. Visual Programming ΓòÉΓòÉΓòÉ
  2289.  
  2290.  Visual Builder User's Guide 
  2291.       Describes how to use Visual Builder to create your applications 
  2292.       graphically, without writing code. 
  2293.  
  2294.  Visual Builder Parts Reference 
  2295.       Describes the reusable parts for Visual Builder (parts are like classes). 
  2296.  
  2297.  Building Parts for Fun and Profit 
  2298.       Tells you how to create your own libraries of parts for others to use. 
  2299.  
  2300.  
  2301. ΓòÉΓòÉΓòÉ 10.1.7. IPF and Editing ΓòÉΓòÉΓòÉ
  2302.  
  2303.  IPF User's Guide 
  2304.       Describes how to edit, compile, link, debug, analyze, browse, and 
  2305.       internationalize your applications 
  2306.  
  2307.  IPF Programmer's Guide and Reference 
  2308.       Tells you how to create online information using the IPF help facility. 
  2309.  
  2310.  Editor Command Reference 
  2311.       Describes how to customize and program the VisualAge for C++ editor. 
  2312.  
  2313.  
  2314. ΓòÉΓòÉΓòÉ 10.1.8. SOM ΓòÉΓòÉΓòÉ
  2315.  
  2316.  SOM Programming Guide 
  2317.       Describes the System Object Model (SOM) and how to use it. 
  2318.  
  2319.  SOM Programming Reference 
  2320.       Provides details about the SOM interfaces. 
  2321.  
  2322.  
  2323. ΓòÉΓòÉΓòÉ 10.1.9. Windows Programming ΓòÉΓòÉΓòÉ
  2324.  
  2325.  Win32 
  2326.       Provides detailed information on utilizing Win32 APIs and services 
  2327.       specific to the Windows NT and Windows 95 operating systems within your 
  2328.       application. 
  2329.  
  2330.  If you prefer books to online information you can order most of this 
  2331.  information in hardcopy format through the same channels you ordered the 
  2332.  VisualAge for C++ product. 
  2333.  
  2334.  
  2335. ΓòÉΓòÉΓòÉ 10.2. Hardcopy Information ΓòÉΓòÉΓòÉ
  2336.  
  2337. All VisualAge for C++ packages contain this book (Installation Guide and 
  2338. Product Overview) and: 
  2339.  
  2340.  License Information 
  2341.       Details the license agreement. 
  2342.  
  2343.  HELP!! and how to get it 
  2344.       Tells you what to do if you have a problem with VisualAge for C++. 
  2345.  
  2346.  If you have the CD-ROM-only version of VisualAge for C++, these are the only 
  2347.  hardcopy books you have. All other information is online in .INF and 
  2348.  PostScript format. 
  2349.  
  2350.  If you have the CD-ROM document package version of VisualAge for C++, you get 
  2351.  the following additional hardcopy information: 
  2352.  
  2353.  Programming Guide 
  2354.       Describes C and C++ programming techniques for both novice and 
  2355.       experienced users. 
  2356.  
  2357.  User's Guide 
  2358.       Tells you how to use the WorkFrame, editor, compiler, linker, debugger, 
  2359.       browser, Performance Analyzer, and utilities. 
  2360.  
  2361.  Visual Builder User's Guide 
  2362.       Describes how to use Visual Builder to create your applications 
  2363.       graphically, without writing code. 
  2364.  
  2365.  Open Class Library User's Guide 
  2366.       Tells you how to use the IBM Open Class libraries in your C++ programs, 
  2367.       including the Collection, Database Access, and User Interface classes. 
  2368.  
  2369.  If you want to order even more books you can do this through the same channels 
  2370.  you ordered the VisualAge for C++ product. 
  2371.  
  2372.  The hardcopy information comes in the following two packages: 
  2373.  
  2374.  Library Group 1, 33H4981 
  2375.  
  2376.                              User's Guide 
  2377.                              Programming Guide 
  2378.                              Open Class Library User's Guide 
  2379.                              Visual Builder User's Guide 
  2380.  
  2381.  Library Group 2, 33H4982 
  2382.  
  2383.                              Language Reference 
  2384.                              C Library Reference 
  2385.                              Open Class Library Reference: Volume 1 
  2386.                              Open Class Library Reference: Volume 2 
  2387.                              Open Class Library Reference: Volume 3 
  2388.                              Open Class Library Reference: Volume 4 
  2389.                              Visual Builder Parts Reference 
  2390.                              Building VisualAge for C++ Parts for Fun and 
  2391.                               Profit 
  2392.  
  2393.  If you have VisualAge for C++ on CD-ROM, you can also print the PostScript 
  2394.  files for the books, as described in PostScript Files. 
  2395.  
  2396.  
  2397. ΓòÉΓòÉΓòÉ 10.3. PostScript Files ΓòÉΓòÉΓòÉ
  2398.  
  2399. If you have VisualAge for C++ on CD-ROM, PostScript files are available for all 
  2400. information that can be ordered in hardcopy. The files are located in the PS 
  2401. directory. You can print these files on any PostScript printer. 
  2402.  
  2403. To print the files drag the file icon and drop it on your printer icon. 
  2404.  
  2405.  
  2406. ΓòÉΓòÉΓòÉ 11. Glossary ΓòÉΓòÉΓòÉ
  2407.  
  2408. This glossary defines terms and abbreviations that are used in this book. 
  2409. Included are terms and definitions from the following sources: 
  2410.  
  2411.      American National Standard Dictionary for Information Systems, ANSI 
  2412.       X3.172-1990, copyright 1990 by the American National Standards Institute 
  2413.       (ANSI). Copies may be purchased from the American National Standards 
  2414.       Institute, 1430 Broadway, New York, New York 10018. Such definitions are 
  2415.       indicated by the symbol ANSI after the definition. 
  2416.  
  2417.      IBM Dictionary of Computing, SC20-1699. These definitions are indicated 
  2418.       by the registered trademark IBM after the definition. 
  2419.  
  2420.      X/Open CAE Specification.  Commands and Utilities, Issue 4.  July, 1992. 
  2421.       These definitions are indicated by the symbol X/Open after the 
  2422.       definition. 
  2423.  
  2424.      ISO/IEC 9945-1:1990/IEEE POSIX 1003.1-1990. These definitions are 
  2425.       indicated by the symbol ISO.1 after the definition. 
  2426.  
  2427.      The Information Technology Vocabulary, developed by Subcommittee 1, Joint 
  2428.       Technical Committee 1, of the International Organization for 
  2429.       Standardization and the International Electrotechnical Commission 
  2430.       (ISO/IEC JTC1/SC1). Definitions of published parts of this vocabulary are 
  2431.       identified by the symbol ISO-JTC1 after the definition; definitions taken 
  2432.       from draft international standards, committee drafts, and working papers 
  2433.       being developed by ISO/IEC JTC1/SC1 are identified by the symbol ISO 
  2434.       Draft after the definition, indicating that final agreement has not yet 
  2435.       been reached among the participating National Bodies of SC1. 
  2436.  
  2437.  
  2438.    A                    J                    S
  2439.  
  2440.    B                    K                    T
  2441.  
  2442.    C                    L                    U
  2443.  
  2444.    D                    M                    V
  2445.  
  2446.    E                    N                    W
  2447.  
  2448.    F                    O                    X
  2449.  
  2450.    G                    P                    Y
  2451.  
  2452.    H                    Q                    Z
  2453.  
  2454.    I                    R
  2455.  
  2456.  
  2457.  
  2458. ΓòÉΓòÉΓòÉ <hidden> A ΓòÉΓòÉΓòÉ
  2459.  
  2460. Glossary terms begin on next panel. 
  2461.  
  2462.  
  2463. ΓòÉΓòÉΓòÉ 11.1. access ΓòÉΓòÉΓòÉ
  2464.  
  2465. access 
  2466.  
  2467. An attribute that determines whether or not a class member is accessible in an 
  2468. expression or declaration. It can be public, protected, or private. 
  2469.  
  2470.  
  2471. ΓòÉΓòÉΓòÉ 11.2. action ΓòÉΓòÉΓòÉ
  2472.  
  2473. action 
  2474.  
  2475. A description of tool or function that can be used to manipulate a project's 
  2476. parts, or build a project's target.  Examples are compile, link, and edit. 
  2477.  
  2478.  
  2479. ΓòÉΓòÉΓòÉ 11.3. application ΓòÉΓòÉΓòÉ
  2480.  
  2481. application 
  2482.  
  2483.    1. The use to which an information processing system is put; for example, a 
  2484.       payroll application, an airline reservation application, a network 
  2485.       application.IBM. 
  2486.  
  2487.    2. A collection of software components used to perform specific types of 
  2488.       user-oriented work on a computer.IBM. 
  2489.  
  2490.  
  2491. ΓòÉΓòÉΓòÉ 11.4. array ΓòÉΓòÉΓòÉ
  2492.  
  2493. array 
  2494.  
  2495. An aggregate that consists of data objects, with identical attributes, each of 
  2496. which may be uniquely referenced by subscripting. 
  2497.  
  2498.  
  2499. ΓòÉΓòÉΓòÉ 11.5. ASCII (American National Standard Code for Information Interchange) ΓòÉΓòÉΓòÉ
  2500.  
  2501. ASCII (American National Standard Code for Information Interchange) 
  2502.  
  2503. The standard code, using a coded character set consisting of 7-bit coded 
  2504. characters (8 bits including parity check), that is used for information 
  2505. interchange among data processing systems, data communication systems, and 
  2506. associated equipment. The ASCII set consists of control characters and graphic 
  2507. characters. 
  2508.  
  2509. Note:  IBM has defined an extension to ASCII code (characters 128-255). 
  2510.  
  2511.  
  2512. ΓòÉΓòÉΓòÉ 11.6. AVL tree ΓòÉΓòÉΓòÉ
  2513.  
  2514. AVL tree 
  2515.  
  2516. A balanced binary search tree that does not allow the height of two siblings to 
  2517. differ by more than one. 
  2518.  
  2519.  
  2520. ΓòÉΓòÉΓòÉ <hidden> B ΓòÉΓòÉΓòÉ
  2521.  
  2522. Glossary terms begin on next panel. 
  2523.  
  2524.  
  2525. ΓòÉΓòÉΓòÉ 11.7. B*-tree (B star tree) ΓòÉΓòÉΓòÉ
  2526.  
  2527. B*-tree (B star tree) 
  2528.  
  2529. A tree in which only the leaves contain whole elements. All other nodes contain 
  2530. keys. 
  2531.  
  2532.  
  2533. ΓòÉΓòÉΓòÉ 11.8. balance ΓòÉΓòÉΓòÉ
  2534.  
  2535. balance 
  2536.  
  2537.    1. For audio, refers to the relative strength of the left and right 
  2538.       channels. A balance level of 0 is left channel only. A balance level of 
  2539.       100 is right channel only 
  2540.  
  2541.    2. A state of equilibrium, usually between treble and bass. 
  2542.  
  2543.  
  2544. ΓòÉΓòÉΓòÉ 11.9. based on ΓòÉΓòÉΓòÉ
  2545.  
  2546. based on 
  2547.  
  2548. A relationship between two classes in which one class is implemented through 
  2549. the other. A new class is "based on" an existing class when the existing class 
  2550. is used to implement it. 
  2551.  
  2552.  
  2553. ΓòÉΓòÉΓòÉ 11.10. block ΓòÉΓòÉΓòÉ
  2554.  
  2555. block 
  2556.  
  2557.    1. In programming languages, a compound statement that coincides with the 
  2558.       scope of at least one of the declarations contained within it. A block 
  2559.       may also specify storage allocation or segment programs for other 
  2560.       purposes. ISO-JTC1. 
  2561.  
  2562.    2. A string of data elements recorded or transmitted as a unit. The elements 
  2563.       may be characters, words, or physical records. ISO Draft. 
  2564.  
  2565.    3. The unit of data transmitted to and from a device. Each block contains 
  2566.       one record, part of a record, or several records. 
  2567.  
  2568.  
  2569. ΓòÉΓòÉΓòÉ 11.11. build ΓòÉΓòÉΓòÉ
  2570.  
  2571. build 
  2572.  
  2573. An action that invokes the WorkFrame Build tool.  The Build tool manages the 
  2574. project's makefile, as well as build dependencies between projects in a project 
  2575. hierarchy. 
  2576.  
  2577.  
  2578. ΓòÉΓòÉΓòÉ 11.12. built-in ΓòÉΓòÉΓòÉ
  2579.  
  2580. built-in 
  2581.  
  2582. A function that the compiler automatically puts inline instead of generating a 
  2583. call to the function. Synonymous with predefined. IBM. 
  2584.  
  2585.  
  2586. ΓòÉΓòÉΓòÉ <hidden> C ΓòÉΓòÉΓòÉ
  2587.  
  2588. Glossary terms begin on next panel. 
  2589.  
  2590.  
  2591. ΓòÉΓòÉΓòÉ 11.13. C++ class library ΓòÉΓòÉΓòÉ
  2592.  
  2593. C++ class library 
  2594.  
  2595. See class library. 
  2596.  
  2597.  
  2598. ΓòÉΓòÉΓòÉ 11.14. C++ library ΓòÉΓòÉΓòÉ
  2599.  
  2600. C++ library 
  2601.  
  2602. A system library that contains common C++ language subroutines for file access, 
  2603. memory allocation, and other functions. 
  2604.  
  2605.  
  2606. ΓòÉΓòÉΓòÉ 11.15. call ΓòÉΓòÉΓòÉ
  2607.  
  2608. call 
  2609.  
  2610. To transfer control to a procedure, program, routine, or subroutine. IBM. 
  2611.  
  2612.  
  2613. ΓòÉΓòÉΓòÉ 11.16. character ΓòÉΓòÉΓòÉ
  2614.  
  2615. character 
  2616.  
  2617.    1. A letter, digit, or other symbol that is used as part of the 
  2618.       organization, control, or representation of data. A character is often in 
  2619.       the form of a spatial arrangement of adjacent or connected strokes. ANSI. 
  2620.  
  2621.    2. A sequence of one or more bytes representing a single graphic symbol or 
  2622.       control code. This term corresponds to the ISO C standard term multibyte 
  2623.       character (multi-byte character), where a single-byte character is a 
  2624.       special case of the multi-byte character. Unlike the usage in the ISO C 
  2625.       standard, character here has no necessary relationship with storage 
  2626.       space, and byte is used when storage space is discussed. X/Open. ISO.1. 
  2627.  
  2628.  
  2629. ΓòÉΓòÉΓòÉ 11.17. class ΓòÉΓòÉΓòÉ
  2630.  
  2631. class 
  2632.  
  2633.    1. A group of objects that share a common definition and that therefore 
  2634.       share common properties, operations, and behavior. 
  2635.  
  2636.    2. A C++ aggregate that may contain functions, types, and user-defined 
  2637.       operators in addition to data. Classes can be defined hierarchically, 
  2638.       allowing one class to be an expansion of another, and classes can 
  2639.       restrict access to their members. 
  2640.  
  2641.  
  2642. ΓòÉΓòÉΓòÉ 11.18. C library ΓòÉΓòÉΓòÉ
  2643.  
  2644. C library 
  2645.  
  2646. A system library that contains common C language subroutines for file access, 
  2647. string operators, character operations, memory allocation, and other functions. 
  2648. IBM. 
  2649.  
  2650.  
  2651. ΓòÉΓòÉΓòÉ 11.19. class library ΓòÉΓòÉΓòÉ
  2652.  
  2653. class library 
  2654.  
  2655. A collection of classes. 
  2656.  
  2657.  
  2658. ΓòÉΓòÉΓòÉ 11.20. collection ΓòÉΓòÉΓòÉ
  2659.  
  2660. collection 
  2661.  
  2662.    1. In a general sense, an implementation of an abstract data type for 
  2663.       storing elements. 
  2664.  
  2665.    2. An abstract class without any ordering, element properties, or key 
  2666.       properties. All abstract Collection Classes are derived from Collection. 
  2667.  
  2668.  
  2669. ΓòÉΓòÉΓòÉ 11.21. COM ΓòÉΓòÉΓòÉ
  2670.  
  2671. COM 
  2672.  
  2673. Component Object Model. 
  2674.  
  2675.  
  2676. ΓòÉΓòÉΓòÉ 11.22. command ΓòÉΓòÉΓòÉ
  2677.  
  2678. command 
  2679.  
  2680. A request to perform an operation or run a program. When parameters, arguments, 
  2681. flags, or other operands are associated with a command, the resulting character 
  2682. string is a single command. 
  2683.  
  2684.  
  2685. ΓòÉΓòÉΓòÉ 11.23. Compound Document Framework ΓòÉΓòÉΓòÉ
  2686.  
  2687. Compound Document Framework 
  2688.  
  2689. A starting point for creating a server or container document component that is 
  2690. OLE-enabled. Compound documents allow for the integration of arbitrary or 
  2691. unstructured data from different sources into one location. 
  2692.  
  2693.  
  2694. ΓòÉΓòÉΓòÉ 11.24. Compound Object Model (COM) ΓòÉΓòÉΓòÉ
  2695.  
  2696. Compound Object Model (COM) 
  2697.  
  2698. The underlying model for all OLE services. It consists of a variety of APIs and 
  2699. object interfaces that allow container components to communicate and interact 
  2700. with one another. 
  2701.  
  2702.  
  2703. ΓòÉΓòÉΓòÉ 11.25. condition ΓòÉΓòÉΓòÉ
  2704.  
  2705. condition 
  2706.  
  2707.    1. A relational expression that can be evaluated to a value of either true 
  2708.       or false. IBM. 
  2709.  
  2710.    2. An exception that has been enabled, or recognized, by the Language 
  2711.       Environment and thus is eligible to activate user and language condition 
  2712.       handlers. Any alteration to the normal programmed flow of an application. 
  2713.       Conditions can be detected by the hardware/operating system and result in 
  2714.       an interrupt. They can also be detected by language-specific generated 
  2715.       code or language library code. 
  2716.  
  2717.  
  2718. ΓòÉΓòÉΓòÉ 11.26. container ΓòÉΓòÉΓòÉ
  2719.  
  2720. container 
  2721.  
  2722. An object that holds other objects.IBM. 
  2723.  
  2724.  
  2725. ΓòÉΓòÉΓòÉ 11.27. control ΓòÉΓòÉΓòÉ
  2726.  
  2727. control 
  2728.  
  2729. A graphic object that represents operations or properties of other objects. See 
  2730. also tree control. 
  2731.  
  2732.  
  2733. ΓòÉΓòÉΓòÉ 11.28. cursor ΓòÉΓòÉΓòÉ
  2734.  
  2735. cursor 
  2736.  
  2737. A reference to an element at a specific position in a data structure. 
  2738.  
  2739.  
  2740. ΓòÉΓòÉΓòÉ <hidden> D ΓòÉΓòÉΓòÉ
  2741.  
  2742. Glossary terms begin on next panel. 
  2743.  
  2744.  
  2745. ΓòÉΓòÉΓòÉ 11.29. data type ΓòÉΓòÉΓòÉ
  2746.  
  2747. data type 
  2748.  
  2749. The properties and internal representation that characterize data. 
  2750.  
  2751.  
  2752. ΓòÉΓòÉΓòÉ 11.30. definition ΓòÉΓòÉΓòÉ
  2753.  
  2754. definition 
  2755.  
  2756.    1. A data description that reserves storage and may provide an initial 
  2757.       value. 
  2758.  
  2759.    2. A declaration that allocates storage, and may initialize a data object or 
  2760.       specify the body of a function. 
  2761.  
  2762.  
  2763. ΓòÉΓòÉΓòÉ 11.31. degree ΓòÉΓòÉΓòÉ
  2764.  
  2765. degree 
  2766.  
  2767. The number of children of a node. 
  2768.  
  2769.  
  2770. ΓòÉΓòÉΓòÉ 11.32. delete ΓòÉΓòÉΓòÉ
  2771.  
  2772. delete 
  2773.  
  2774.    1. A C++ keyword that identifies a free-storage deallocation operator. 
  2775.  
  2776.    2. A C++ operator used to destroy objects created by operator new. 
  2777.  
  2778.  
  2779. ΓòÉΓòÉΓòÉ 11.33. device ΓòÉΓòÉΓòÉ
  2780.  
  2781. device 
  2782.  
  2783. A computer peripheral or an object that appears to the application as such. 
  2784. X/Open. ISO.1. 
  2785.  
  2786.  
  2787. ΓòÉΓòÉΓòÉ 11.34. direct manipulation ΓòÉΓòÉΓòÉ
  2788.  
  2789. direct manipulation 
  2790.  
  2791.    1. A user interface technique whereby the user initiates application 
  2792.       functions by manipulating the objects, represented by icons, on the 
  2793.       Presentation Manager (PM) or Workplace Shell desktop. The user typically 
  2794.       initiates an action by: 
  2795.  
  2796.         a. Selecting an icon 
  2797.         b. Pressing and holding down a mouse button while "dragging" the icon 
  2798.            over another object's icon on the desktop 
  2799.         c. Releasing the mouse button to "drop" the icon over the target 
  2800.            object. Thus, this technique is also known as "drag and drop" 
  2801.       manipulation. 
  2802.  
  2803.    2. In Windows, a unit of data. The unit is often part of a task that is 
  2804.       shared among users. 
  2805.  
  2806.  
  2807. ΓòÉΓòÉΓòÉ 11.35. directory ΓòÉΓòÉΓòÉ
  2808.  
  2809. directory 
  2810.  
  2811. A type of file containing the names and controlling information for other files 
  2812. or other directories. IBM. 
  2813.  
  2814.  
  2815. ΓòÉΓòÉΓòÉ 11.36. display ΓòÉΓòÉΓòÉ
  2816.  
  2817. display 
  2818.  
  2819. To direct the output to the user's terminal. If the output is not directed to 
  2820. the terminal, the results are undefined. X/Open. 
  2821.  
  2822.  
  2823. ΓòÉΓòÉΓòÉ 11.37. dynamic ΓòÉΓòÉΓòÉ
  2824.  
  2825. dynamic 
  2826.  
  2827. Pertaining to an operation that occurs at the time it is needed rather than at 
  2828. a predetermined or fixed time. IBM. 
  2829.  
  2830.  
  2831. ΓòÉΓòÉΓòÉ 11.38. dynamic link library (DLL) ΓòÉΓòÉΓòÉ
  2832.  
  2833. dynamic link library (DLL) 
  2834.  
  2835. A file containing executable code and data bound to a program at load time or 
  2836. run time. The code and data in a dynamic link library can be shared by several 
  2837. applications simultaneously. 
  2838.  
  2839.  
  2840. ΓòÉΓòÉΓòÉ <hidden> E ΓòÉΓòÉΓòÉ
  2841.  
  2842. Glossary terms begin on next panel. 
  2843.  
  2844.  
  2845. ΓòÉΓòÉΓòÉ 11.39. element ΓòÉΓòÉΓòÉ
  2846.  
  2847. element 
  2848.  
  2849. The component of an array, subrange, enumeration, or set. 
  2850.  
  2851.  
  2852. ΓòÉΓòÉΓòÉ 11.40. element equality ΓòÉΓòÉΓòÉ
  2853.  
  2854. element equality 
  2855.  
  2856. A relation that determines whether two elements are equal. 
  2857.  
  2858.  
  2859. ΓòÉΓòÉΓòÉ 11.41. environment variable ΓòÉΓòÉΓòÉ
  2860.  
  2861. environment variable 
  2862.  
  2863. Any of a number of variables that describe the way an operating system is going 
  2864. to run and the devices it is going to recognize. 
  2865.  
  2866.  
  2867. ΓòÉΓòÉΓòÉ 11.42. exception ΓòÉΓòÉΓòÉ
  2868.  
  2869. exception 
  2870.  
  2871.    1. A user or system error detected by the system and passed to an operating 
  2872.       system or user exception handler. 
  2873.  
  2874.    2. For C++, any user, logic, or system error detected by a function that 
  2875.       does not itself deal with the error but passes the error on to a handling 
  2876.       routine (also called "throwing the exception"). 
  2877.  
  2878.  
  2879. ΓòÉΓòÉΓòÉ 11.43. exception handling ΓòÉΓòÉΓòÉ
  2880.  
  2881. exception handling 
  2882.  
  2883. A type of error handling that allows control and information to be passed to an 
  2884. exception handler when an exception occurs. In C++, try, catch, and throw 
  2885. expressions are the constructs used to implement C++ exception handling. 
  2886.  
  2887.  
  2888. ΓòÉΓòÉΓòÉ 11.44. extension ΓòÉΓòÉΓòÉ
  2889.  
  2890. extension 
  2891.  
  2892.    1. An element or function not included in the standard language. 
  2893.  
  2894.    2. File name extension. 
  2895.  
  2896.  
  2897. ΓòÉΓòÉΓòÉ <hidden> F ΓòÉΓòÉΓòÉ
  2898.  
  2899. Glossary terms begin on next panel. 
  2900.  
  2901.  
  2902. ΓòÉΓòÉΓòÉ 11.45. filter ΓòÉΓòÉΓòÉ
  2903.  
  2904. filter 
  2905.  
  2906.    1. A command whose operation consists of reading data from standard input or 
  2907.       a list of input files and writing data to standard output. Typically, its 
  2908.       function is to perform some transformation on the data stream. 
  2909.  
  2910.    2. In WorkFrame, the value of a type.  The filter of a type can be expressed 
  2911.       as a file mask; a regular expression; a logical-OR, logical-AND, or 
  2912.       logical-NOT of a list of types; or a filter determined by a PAM. 
  2913.  
  2914.  
  2915. ΓòÉΓòÉΓòÉ 11.46. folder ΓòÉΓòÉΓòÉ
  2916.  
  2917. folder 
  2918.  
  2919. A directory. 
  2920.  
  2921.  
  2922. ΓòÉΓòÉΓòÉ 11.47. frame ΓòÉΓòÉΓòÉ
  2923.  
  2924. frame 
  2925.  
  2926. A border around a window. 
  2927.  
  2928.  
  2929. ΓòÉΓòÉΓòÉ 11.48. function ΓòÉΓòÉΓòÉ
  2930.  
  2931. function 
  2932.  
  2933. A named group of statements that can be called and evaluated and can return a 
  2934. value to the calling statement. IBM. 
  2935.  
  2936.  
  2937. ΓòÉΓòÉΓòÉ 11.49. function call ΓòÉΓòÉΓòÉ
  2938.  
  2939. function call 
  2940.  
  2941. An expression that moves the path of execution from the current function to a 
  2942. specified function and evaluates to the return value provided by the called 
  2943. function. A function call contains the name of the function to which control 
  2944. moves and a parenthesized list of values. IBM. 
  2945.  
  2946.  
  2947. ΓòÉΓòÉΓòÉ <hidden> G ΓòÉΓòÉΓòÉ
  2948.  
  2949. Glossary terms begin on next panel. 
  2950.  
  2951.  
  2952. ΓòÉΓòÉΓòÉ 11.50. global ΓòÉΓòÉΓòÉ
  2953.  
  2954. global 
  2955.  
  2956. Pertaining to information available to more than one program or subroutine. 
  2957. IBM. 
  2958.  
  2959.  
  2960. ΓòÉΓòÉΓòÉ 11.51. graphical user interface (GUI) ΓòÉΓòÉΓòÉ
  2961.  
  2962. graphical user interface (GUI) 
  2963.  
  2964. Type of computer interface consisting of a visual metaphor of a real-world 
  2965. scene, often of a desktop. 
  2966.  
  2967.  
  2968. ΓòÉΓòÉΓòÉ 11.52. graphics ΓòÉΓòÉΓòÉ
  2969.  
  2970. graphics 
  2971.  
  2972. A picture defined in terms of graphic primitives and graphic attributes. 
  2973.  
  2974.  
  2975. ΓòÉΓòÉΓòÉ 11.53. GUI ΓòÉΓòÉΓòÉ
  2976.  
  2977. GUI 
  2978.  
  2979. Graphical user interface. 
  2980.  
  2981.  
  2982. ΓòÉΓòÉΓòÉ <hidden> H ΓòÉΓòÉΓòÉ
  2983.  
  2984. Glossary terms begin on next panel. 
  2985.  
  2986.  
  2987. ΓòÉΓòÉΓòÉ 11.54. hash table ΓòÉΓòÉΓòÉ
  2988.  
  2989. hash table 
  2990.  
  2991. A data structure that divides all elements into (preferably) equal-sized 
  2992. categories, or buckets, to allow quick access to the elements. The hash 
  2993. function determines which bucket an element belongs in. 
  2994.  
  2995.  
  2996. ΓòÉΓòÉΓòÉ 11.55. heap ΓòÉΓòÉΓòÉ
  2997.  
  2998. heap 
  2999.  
  3000. An unordered flat collection that allows duplicate elements. 
  3001.  
  3002.  
  3003. ΓòÉΓòÉΓòÉ <hidden> I ΓòÉΓòÉΓòÉ
  3004.  
  3005. Glossary terms begin on next panel. 
  3006.  
  3007.  
  3008. ΓòÉΓòÉΓòÉ 11.56. inheritance ΓòÉΓòÉΓòÉ
  3009.  
  3010. inheritance 
  3011.  
  3012.    1. An object-oriented programming technique that allows you to use existing 
  3013.       classes as bases for creating other classes. 
  3014.  
  3015.    2. A mechanism by which a derived class can use the attributes, 
  3016.       relationships, and member functions defined in more abstract classes 
  3017.       related to it (its base classes). See also multiple inheritance. 
  3018.  
  3019.  
  3020. ΓòÉΓòÉΓòÉ 11.57. instance (of a class) ΓòÉΓòÉΓòÉ
  3021.  
  3022. instance (of a class) 
  3023.  
  3024. An object that is a member of that class. An object created according to the 
  3025. definition of that class. 
  3026.  
  3027.  
  3028. ΓòÉΓòÉΓòÉ 11.58. instruction ΓòÉΓòÉΓòÉ
  3029.  
  3030. instruction 
  3031.  
  3032. A program statement that specifies an operation to be performed by the 
  3033. computer, along with the values or locations of operands.  This statement 
  3034. represents the programmer's request to the processor to perform a specific 
  3035. operation. 
  3036.  
  3037.  
  3038. ΓòÉΓòÉΓòÉ 11.59. instruction scheduling ΓòÉΓòÉΓòÉ
  3039.  
  3040. instruction scheduling 
  3041.  
  3042. An optimization technique that reorders instructions in code to minimize 
  3043. execution time. 
  3044.  
  3045.  
  3046. ΓòÉΓòÉΓòÉ 11.60. I/O Stream Library ΓòÉΓòÉΓòÉ
  3047.  
  3048. I/O Stream Library 
  3049.  
  3050. A class library that provides the facilities to deal with many varieties of 
  3051. input and output. 
  3052.  
  3053.  
  3054. ΓòÉΓòÉΓòÉ <hidden> K ΓòÉΓòÉΓòÉ
  3055.  
  3056. Glossary terms begin on next panel. 
  3057.  
  3058.  
  3059. ΓòÉΓòÉΓòÉ 11.61. kernel ΓòÉΓòÉΓòÉ
  3060.  
  3061. kernel 
  3062.  
  3063. The core of an operating system, usually responsible for basic I/O and process 
  3064. execution. 
  3065.  
  3066.  
  3067. ΓòÉΓòÉΓòÉ 11.62. keyword ΓòÉΓòÉΓòÉ
  3068.  
  3069. keyword 
  3070.  
  3071.    1. A predefined word reserved for the C or C++ language that you cannot use 
  3072.       as an identifier. 
  3073.  
  3074.    2. A symbol that identifies a parameter. 
  3075.  
  3076.  
  3077. ΓòÉΓòÉΓòÉ <hidden> L ΓòÉΓòÉΓòÉ
  3078.  
  3079. Glossary terms begin on next panel. 
  3080.  
  3081.  
  3082. ΓòÉΓòÉΓòÉ 11.63. label ΓòÉΓòÉΓòÉ
  3083.  
  3084. label 
  3085.  
  3086. An identifier within or attached to a set of data elements. 
  3087.  
  3088.  ISO Draft.
  3089.  
  3090.  
  3091. ΓòÉΓòÉΓòÉ 11.64. leaves ΓòÉΓòÉΓòÉ
  3092.  
  3093. leaves 
  3094.  
  3095. In a tree, nodes without children.  Synonymous with terminals. 
  3096.  
  3097.  
  3098. ΓòÉΓòÉΓòÉ 11.65. library ΓòÉΓòÉΓòÉ
  3099.  
  3100. library 
  3101.  
  3102.    1. A collection of functions, function calls, subroutines, or other data. 
  3103.  
  3104.    2. A set of object modules that can be specified in a link command. 
  3105.  
  3106.  
  3107. ΓòÉΓòÉΓòÉ 11.66. link ΓòÉΓòÉΓòÉ
  3108.  
  3109. link 
  3110.  
  3111. To interconnect items of data or portions of one or more computer programs; for 
  3112. example, linking of object programs by a linkage editor to produce an 
  3113. executable file. 
  3114.  
  3115.  
  3116. ΓòÉΓòÉΓòÉ 11.67. linker ΓòÉΓòÉΓòÉ
  3117.  
  3118. linker 
  3119.  
  3120. A program that resolves cross-references between separately compiled object 
  3121. modules and then assigns final addresses to create a single executable program. 
  3122.  
  3123.  
  3124. ΓòÉΓòÉΓòÉ 11.68. local ΓòÉΓòÉΓòÉ
  3125.  
  3126. local 
  3127.  
  3128.    1. In programming languages, pertaining to the relationship between a 
  3129.       language object and a block such that the language object has a scope 
  3130.       contained in that block. ISO-JTC1. 
  3131.  
  3132.    2. Pertaining to that which is defined and used only in one subdivision of a 
  3133.       computer program. ANSI. 
  3134.  
  3135.  
  3136. ΓòÉΓòÉΓòÉ <hidden> M ΓòÉΓòÉΓòÉ
  3137.  
  3138. Glossary terms begin on next panel. 
  3139.  
  3140.  
  3141. ΓòÉΓòÉΓòÉ 11.69. macro ΓòÉΓòÉΓòÉ
  3142.  
  3143. macro 
  3144.  
  3145. An identifier followed by arguments (may be a parenthesized list of arguments) 
  3146. that the preprocessor replaces with the replacement code located in a 
  3147. preprocessor #define directive. 
  3148.  
  3149.  
  3150. ΓòÉΓòÉΓòÉ 11.70. make ΓòÉΓòÉΓòÉ
  3151.  
  3152. make 
  3153.  
  3154. An action in which a project's target is built from a makefile by a make 
  3155. utility. 
  3156.  
  3157.  
  3158. ΓòÉΓòÉΓòÉ 11.71. message ΓòÉΓòÉΓòÉ
  3159.  
  3160. message 
  3161.  
  3162. A request from one object that the receiving object implement a method. Because 
  3163. data is encapsulated and not directly accessible, a message is the only way to 
  3164. send data from one object to another. Each message specifies the name of the 
  3165. receiving object, the method to be implemented, and any parameters the method 
  3166. needs for implementation. 
  3167.  
  3168.  
  3169. ΓòÉΓòÉΓòÉ 11.72. method ΓòÉΓòÉΓòÉ
  3170.  
  3171. method 
  3172.  
  3173. Synonym for member function. 
  3174.  
  3175.  
  3176. ΓòÉΓòÉΓòÉ 11.73. MIDI ΓòÉΓòÉΓòÉ
  3177.  
  3178. MIDI 
  3179.  
  3180. Musical Instrument Digital Interface. A standard used in the music industry for 
  3181. interfacing digital musical instruments. 
  3182.  
  3183.  
  3184. ΓòÉΓòÉΓòÉ 11.74. migrate ΓòÉΓòÉΓòÉ
  3185.  
  3186. migrate 
  3187.  
  3188. To move to a changed operating environment,  usually to a new release or 
  3189. version of a system. IBM. 
  3190.  
  3191.  
  3192. ΓòÉΓòÉΓòÉ 11.75. mix ΓòÉΓòÉΓòÉ
  3193.  
  3194. mix 
  3195.  
  3196.    1. An attribute that determines how the foreground of a graphic primitive is 
  3197.       combined with the existing color of graphics output. Also known as 
  3198.       foreground mix. Contrast with background mix. 
  3199.  
  3200.    2. The combination of audio or video sources during postproduction. 
  3201.  
  3202.  
  3203. ΓòÉΓòÉΓòÉ 11.76. mixer ΓòÉΓòÉΓòÉ
  3204.  
  3205. mixer 
  3206.  
  3207. A device used to simultaneously combine and blend several inputs into one or 
  3208. two outputs. 
  3209.  
  3210.  
  3211. ΓòÉΓòÉΓòÉ 11.77. mode ΓòÉΓòÉΓòÉ
  3212.  
  3213. mode 
  3214.  
  3215. A collection of attributes that specifies a file's type and its access 
  3216. permissions. X/Open. ISO.1. 
  3217.  
  3218.  
  3219. ΓòÉΓòÉΓòÉ 11.78. module ΓòÉΓòÉΓòÉ
  3220.  
  3221. module 
  3222.  
  3223. A program unit that usually performs a particular function or related 
  3224. functions, and that is distinct and identifiable with respect to compiling, 
  3225. combining with other units, and loading. 
  3226.  
  3227.  
  3228. ΓòÉΓòÉΓòÉ 11.79. Monitor ΓòÉΓòÉΓòÉ
  3229.  
  3230. Monitor 
  3231.  
  3232. A window that displays output from monitored actions. The Monitor window is 
  3233. attached to the project container. 
  3234.  
  3235.  
  3236. ΓòÉΓòÉΓòÉ 11.80. multibyte character ΓòÉΓòÉΓòÉ
  3237.  
  3238. multibyte character 
  3239.  
  3240. A mixture of single-byte characters from a single-byte character set and 
  3241. double-byte characters from a double-byte character set. 
  3242.  
  3243.  
  3244. ΓòÉΓòÉΓòÉ 11.81. multimedia ΓòÉΓòÉΓòÉ
  3245.  
  3246. multimedia 
  3247.  
  3248. Computer-controlled presentations combining any of the following: text, 
  3249. graphics, animation, full-motion images, still video images, and sound. 
  3250.  
  3251.  
  3252. ΓòÉΓòÉΓòÉ 11.82. multiple inheritance ΓòÉΓòÉΓòÉ
  3253.  
  3254. multiple inheritance 
  3255.  
  3256.    1. An object-oriented programming technique implemented in C++ through 
  3257.       derivation, in which the derived class inherits members from more than 
  3258.       one base class. 
  3259.  
  3260.    2. The structuring of inheritance relationships among classes so a derived 
  3261.       class can use the attributes, relationships, and functions used by more 
  3262.       than one base class. 
  3263.  
  3264.       See also inheritance. 
  3265.  
  3266.  
  3267. ΓòÉΓòÉΓòÉ 11.83. multithread ΓòÉΓòÉΓòÉ
  3268.  
  3269. multithread 
  3270.  
  3271. Pertaining to concurrent operation of more than one path of execution within a 
  3272. computer. 
  3273.  
  3274.  
  3275. ΓòÉΓòÉΓòÉ <hidden> N ΓòÉΓòÉΓòÉ
  3276.  
  3277. Glossary terms begin on next panel. 
  3278.  
  3279.  
  3280. ΓòÉΓòÉΓòÉ 11.84. name ΓòÉΓòÉΓòÉ
  3281.  
  3282. name 
  3283.  
  3284. In the C++ language, a name is commonly referred to as an identifier. However, 
  3285. syntactically, a name can be an identifier, operator function name, conversion 
  3286. function name, destructor name, or qualified name. 
  3287.  
  3288.  
  3289. ΓòÉΓòÉΓòÉ 11.85. native ΓòÉΓòÉΓòÉ
  3290.  
  3291. native 
  3292.  
  3293. The rendering mechanism and format (RMF) that best represents the object and is 
  3294. the best one for rendering. 
  3295.  
  3296. For example, a native of Cincinnati understands the streets in the area better 
  3297. than someone who has just moved there. Therefore, a Cincinnati native can get 
  3298. from point A to point B quicker than a newcomer. Likewise, a native RMF can get 
  3299. the data transferred from point A to point B more efficiently than the 
  3300. additional RMFs. We can use additional RMFs when we cannot use the native, or 
  3301. optimal, approach. 
  3302.  
  3303.  
  3304. ΓòÉΓòÉΓòÉ <hidden> O ΓòÉΓòÉΓòÉ
  3305.  
  3306. Glossary terms begin on next panel. 
  3307.  
  3308.  
  3309. ΓòÉΓòÉΓòÉ 11.86. object ΓòÉΓòÉΓòÉ
  3310.  
  3311. object 
  3312.  
  3313.    1. A computer representation of something that a user can work with to 
  3314.       perform a task. An object can appear as text or an icon. 
  3315.  
  3316.    2. A collection of data and member functions that operate on that data, 
  3317.       which together represent a logical entity in the system. In 
  3318.       object-oriented programming, objects are grouped into classes that share 
  3319.       common data definitions and member functions. Each object in the class is 
  3320.       said to be an instance of the class. 
  3321.  
  3322.    3. In Visual Builder, an instance of an object class consisting of 
  3323.       attributes, a data structure, and operational member functions. It can 
  3324.       represent a person, place, thing, event, or concept. Each instance has 
  3325.       the same properties, attributes, and member functions as other instances 
  3326.       of the object class, though it has unique values assigned to its 
  3327.       attributes. 
  3328.  
  3329.    4. In Windows, any item that is or can be linked into another Windows 
  3330.       application, such as a sound, graphic, piece of text, or portion of a 
  3331.       spreadsheet. An object must be from an application that supports OLE. See 
  3332.       object linking and embedding (OLE). 
  3333.  
  3334.  
  3335. ΓòÉΓòÉΓòÉ 11.87. object linking and embedding (OLE) ΓòÉΓòÉΓòÉ
  3336.  
  3337. object linking and embedding (OLE) 
  3338.  
  3339.    1. An API that supports compound documents, cross-application macro control, 
  3340.       and common object registration. OLE defines protocols for in-place 
  3341.       editing, drag-and-drop data transfers, structured storage, custom 
  3342.       controls, and more. 
  3343.  
  3344.    2. A data-sharing scheme that allows dissimilar applications to create 
  3345.       single complex documents cooperatively. The documents can consist of 
  3346.       material that a single application could not have created on its own. 
  3347.  
  3348.  
  3349. ΓòÉΓòÉΓòÉ 11.88. object-oriented programming ΓòÉΓòÉΓòÉ
  3350.  
  3351. object-oriented programming 
  3352.  
  3353. A programming approach based on the concepts of data abstraction and 
  3354. inheritance. Unlike procedural programming techniques, object-oriented 
  3355. programming concentrates on what data objects comprise the problem and how they 
  3356. are manipulated, not on how something is accomplished. 
  3357.  
  3358.  
  3359. ΓòÉΓòÉΓòÉ 11.89. OLE ΓòÉΓòÉΓòÉ
  3360.  
  3361. OLE 
  3362.  
  3363. See object linking and embedding. 
  3364.  
  3365.  
  3366. ΓòÉΓòÉΓòÉ 11.90. operator precedence ΓòÉΓòÉΓòÉ
  3367.  
  3368. operator precedence 
  3369.  
  3370. In programming languages, an order relation defining the sequence of the 
  3371. application of operators within an expression. ISO-JTC1. 
  3372.  
  3373.  
  3374. ΓòÉΓòÉΓòÉ <hidden> P ΓòÉΓòÉΓòÉ
  3375.  
  3376. Glossary terms begin on next panel. 
  3377.  
  3378.  
  3379. ΓòÉΓòÉΓòÉ 11.91. parameter ΓòÉΓòÉΓòÉ
  3380.  
  3381. parameter 
  3382.  
  3383.    1. In the C and C++ languages, an object declared as part of a function 
  3384.       declaration or definition that acquires a value on entry to the function, 
  3385.       or an identifier following the macro name in a function-like macro 
  3386.       definition. X/Open. 
  3387.  
  3388.    2. Data passed between programs or procedures. IBM. 
  3389.  
  3390.  
  3391. ΓòÉΓòÉΓòÉ 11.92. part ΓòÉΓòÉΓòÉ
  3392.  
  3393. part 
  3394.  
  3395. In Visual Builder, a part is a self-contained object with a standardized public 
  3396. interface consisting of a set of external features that allow the part to 
  3397. interact with other parts. A part is implemented as a class that supports the 
  3398. INotifier protocol and has a part interface defined. 
  3399.  
  3400.  
  3401. ΓòÉΓòÉΓòÉ 11.93. path name ΓòÉΓòÉΓòÉ
  3402.  
  3403. path name 
  3404.  
  3405.    1. A string that is used to identify a file. A path name consists of, at 
  3406.       most, {PATH_MAX} bytes, including the terminating null character.  It has 
  3407.       an optional beginning slash, followed by zero or more file names 
  3408.       separated by slashes.  If the path name refers to a directory, it may 
  3409.       also have one or more trailing slashes.  Multiple successive slashes are 
  3410.       considered to be the same as one slash.  A path name that begins with two 
  3411.       successive slashes may be interpreted in an implementation-dependent 
  3412.       manner, although more than two leading slashes will be treated as a 
  3413.       single slash.  The interpretation of the path name is described in 
  3414.       pathname resolution. ISO.1. 
  3415.  
  3416.    2. A file name specifying all directories leading to the file. 
  3417.  
  3418.  
  3419. ΓòÉΓòÉΓòÉ 11.94. pointer ΓòÉΓòÉΓòÉ
  3420.  
  3421. pointer 
  3422.  
  3423. A variable that holds the address of a data object or function. 
  3424.  
  3425.  
  3426. ΓòÉΓòÉΓòÉ 11.95. portability ΓòÉΓòÉΓòÉ
  3427.  
  3428. portability 
  3429.  
  3430. The ability of a programming language to compile successfully on different 
  3431. operating systems without requiring changes to the source code. 
  3432.  
  3433.  
  3434. ΓòÉΓòÉΓòÉ 11.96. precedence ΓòÉΓòÉΓòÉ
  3435.  
  3436. precedence 
  3437.  
  3438. The priority system for grouping different types of operators with their 
  3439. operands. 
  3440.  
  3441.  
  3442. ΓòÉΓòÉΓòÉ 11.97. process ΓòÉΓòÉΓòÉ
  3443.  
  3444. process 
  3445.  
  3446.    1. A collection of code, data, and other system resources, including at 
  3447.       least one thread of execution, that performs a data processing task. 
  3448.  
  3449.    2. A running application, its address space, and its resources. 
  3450.  
  3451.    3. An instance of a running program. A Win32 process owns a 4-GB address 
  3452.       space containing the code and data for an application's .exe file; it 
  3453.       does not execute anything. It also owns certain resources, such as files, 
  3454.       dynamic memory allocations, and threads. 
  3455.  
  3456.    4. A program running under OS/2, along with the resources associated with it 
  3457.       (memory, threads, file system resources, and so on). 
  3458.  
  3459.  
  3460. ΓòÉΓòÉΓòÉ 11.98. program ΓòÉΓòÉΓòÉ
  3461.  
  3462. program 
  3463.  
  3464.    1. One or more files containing a set of instructions conforming to a 
  3465.       particular programming language syntax. 
  3466.  
  3467.    2. A self-contained, executable module. Multiple copies of the same program 
  3468.       can be run in different processes. 
  3469.  
  3470.  
  3471. ΓòÉΓòÉΓòÉ 11.99. project ΓòÉΓòÉΓòÉ
  3472.  
  3473. project 
  3474.  
  3475.    1. A container that groups related objects (tasks) into a primary window. 
  3476.       When the user opens the object, the object has its own primary window. 
  3477.  
  3478.    2. In WorkFrame, the complete set of data objects (called project parts) 
  3479.  
  3480.              and actions needed to build
  3481.       a single target, such as a dynamic link library (DLL) or executable file 
  3482.       (EXE). 
  3483.  
  3484.  
  3485. ΓòÉΓòÉΓòÉ 11.100. prototype ΓòÉΓòÉΓòÉ
  3486.  
  3487. prototype 
  3488.  
  3489. A function declaration or definition that includes both the return type of the 
  3490. function and the types of its arguments. 
  3491.  
  3492.  
  3493. ΓòÉΓòÉΓòÉ <hidden> Q ΓòÉΓòÉΓòÉ
  3494.  
  3495. Glossary terms begin on next panel. 
  3496.  
  3497.  
  3498. ΓòÉΓòÉΓòÉ <hidden> R ΓòÉΓòÉΓòÉ
  3499.  
  3500. Glossary terms begin on next panel. 
  3501.  
  3502.  
  3503. ΓòÉΓòÉΓòÉ 11.101. return ΓòÉΓòÉΓòÉ
  3504.  
  3505. return 
  3506.  
  3507. A language construct that ends an execution sequence in a procedure. 
  3508.  
  3509.  
  3510. ΓòÉΓòÉΓòÉ 11.102. root ΓòÉΓòÉΓòÉ
  3511.  
  3512. root 
  3513.  
  3514. A node that has no parent. All other nodes of a tree are descendants of the 
  3515. root. 
  3516.  
  3517.  
  3518. ΓòÉΓòÉΓòÉ 11.103. RTTI ΓòÉΓòÉΓòÉ
  3519.  
  3520. RTTI 
  3521.  
  3522.  Run-time type identification. 
  3523.  
  3524.  
  3525. ΓòÉΓòÉΓòÉ 11.104. run-time type identification (RTTI) ΓòÉΓòÉΓòÉ
  3526.  
  3527. run-time type identification (RTTI) 
  3528.  
  3529. A mechanism in the C++ language for determining the class of an object at run 
  3530. time. It consists of two operators, one for determining the run-time type of an 
  3531. object (typeid) and one for doing type conversions that are checked at run time 
  3532. (dynamic_cast). A type_info class describes the RTTI available and defines the 
  3533. type returned by the typeid operator. 
  3534.  
  3535.  
  3536. ΓòÉΓòÉΓòÉ <hidden> S ΓòÉΓòÉΓòÉ
  3537.  
  3538. Glossary terms begin on next panel. 
  3539.  
  3540.  
  3541. ΓòÉΓòÉΓòÉ 11.105. sequence ΓòÉΓòÉΓòÉ
  3542.  
  3543. sequence 
  3544.  
  3545. A sequentially ordered flat collection. 
  3546.  
  3547.  
  3548. ΓòÉΓòÉΓòÉ 11.106. shell ΓòÉΓòÉΓòÉ
  3549.  
  3550. shell 
  3551.  
  3552. A program that interprets sequences of text input as commands. It may operate 
  3553. on an input stream or it may interactively prompt and read commands from a 
  3554. terminal. X/Open. 
  3555.  
  3556. This feature is provided as part of OpenEdition MVS Shell and Utilities feature 
  3557. licensed program. 
  3558.  
  3559.  
  3560. ΓòÉΓòÉΓòÉ 11.107. silent mode ΓòÉΓòÉΓòÉ
  3561.  
  3562. silent mode 
  3563.  
  3564.  See unattended mode. 
  3565.  
  3566.  
  3567. ΓòÉΓòÉΓòÉ 11.108. source file ΓòÉΓòÉΓòÉ
  3568.  
  3569. source file 
  3570.  
  3571. A file that contains source statements for such items as high-level language 
  3572. programs and data description specifications. IBM. 
  3573.  
  3574.  
  3575. ΓòÉΓòÉΓòÉ 11.109. stack ΓòÉΓòÉΓòÉ
  3576.  
  3577. stack 
  3578.  
  3579. A data structure in which new elements are added to and removed from the top of 
  3580. the structure.  A stack is characterized by Last-In-First-Out (LIFO) behavior. 
  3581.  
  3582.  
  3583. ΓòÉΓòÉΓòÉ 11.110. statement ΓòÉΓòÉΓòÉ
  3584.  
  3585. statement 
  3586.  
  3587. An instruction that ends with the character ; (semicolon) or several 
  3588. instructions that are surrounded by the characters { and }. 
  3589.  
  3590.  
  3591. ΓòÉΓòÉΓòÉ 11.111. static ΓòÉΓòÉΓòÉ
  3592.  
  3593. static 
  3594.  
  3595. A keyword used for defining the scope and linkage of variables and functions. 
  3596. For internal variables, the variable has block scope and retains its value 
  3597. between function calls. For external values, the variable has file scope and 
  3598. retains its value within the source file. For class variables, the variable is 
  3599. shared by all objects of the class and retains its value within the entire 
  3600. program. 
  3601.  
  3602.  
  3603. ΓòÉΓòÉΓòÉ 11.112. stream ΓòÉΓòÉΓòÉ
  3604.  
  3605. stream 
  3606.  
  3607.    1. A continuous stream of data elements being transmitted, or intended for 
  3608.       transmission, in character or binary-digit form, using a defined format. 
  3609.  
  3610.    2. A file access object that allows access to an ordered sequence of 
  3611.       characters, as described by the ISO C standard. A stream provides the 
  3612.       additional services of user-selectable buffering and formatted input and 
  3613.       output. 
  3614.  
  3615.  
  3616. ΓòÉΓòÉΓòÉ 11.113. string ΓòÉΓòÉΓòÉ
  3617.  
  3618. string 
  3619.  
  3620. A contiguous sequence of characters. 
  3621.  
  3622.  
  3623. ΓòÉΓòÉΓòÉ 11.114. structured exception handling ΓòÉΓòÉΓòÉ
  3624.  
  3625. structured exception handling 
  3626.  
  3627. A Windows-specific mechanism for handling system exceptions that matches 
  3628. exceptions with handlers based on the value returned from an exception filter 
  3629. expression. 
  3630.  
  3631.  
  3632. ΓòÉΓòÉΓòÉ 11.115. subsystem ΓòÉΓòÉΓòÉ
  3633.  
  3634. subsystem 
  3635.  
  3636. A secondary or subordinate system, usually capable of operating independently 
  3637. of or asynchronously with, a controlling system. ISO Draft. 
  3638.  
  3639.  
  3640. ΓòÉΓòÉΓòÉ <hidden> T ΓòÉΓòÉΓòÉ
  3641.  
  3642. Glossary terms begin on next panel. 
  3643.  
  3644.  
  3645. ΓòÉΓòÉΓòÉ 11.116. task ΓòÉΓòÉΓòÉ
  3646.  
  3647. task 
  3648.  
  3649.    1. In a multiprogramming or multiprocessing environment, one or more 
  3650.       sequences of instructions treated by a control program as an element of 
  3651.       work to be accomplished by a computer. ISO-JTC1. ANSI. 
  3652.  
  3653.    2. A routine that is used to simulate the operation of programs. Tasks are 
  3654.       said to be nonpreemptive because only a single task is executing at any 
  3655.       one time. Tasks are said to be lightweight because less time and space 
  3656.       are required to create a task than a true operating system process. 
  3657.  
  3658.  
  3659. ΓòÉΓòÉΓòÉ 11.117. template ΓòÉΓòÉΓòÉ
  3660.  
  3661. template 
  3662.  
  3663. A family of classes or functions where the code remains invariant but operates 
  3664. with variable types. 
  3665.  
  3666.  
  3667. ΓòÉΓòÉΓòÉ 11.118. thread ΓòÉΓòÉΓòÉ
  3668.  
  3669. thread 
  3670.  
  3671.    1. The smallest unit or path of execution within a process. IBM. 
  3672.  
  3673.    2. A piece of executing code. 
  3674.  
  3675.    3. In Windows, each thread is allocated its own stack from the owning 
  3676.       process' 4-GB address space, and each one has its own set of processor 
  3677.       registers, called the thread's context. See also primary thread and zero 
  3678.       page thread. 
  3679.  
  3680.  
  3681. ΓòÉΓòÉΓòÉ 11.119. tool bar ΓòÉΓòÉΓòÉ
  3682.  
  3683. tool bar 
  3684.  
  3685. The area under the title bar that displays the tools available. 
  3686.  
  3687.  
  3688. ΓòÉΓòÉΓòÉ 11.120. tree ΓòÉΓòÉΓòÉ
  3689.  
  3690. tree 
  3691.  
  3692. A hierarchical collection of nodes that can have an arbitrary number of 
  3693. references to other nodes. A unique path connects every two nodes. 
  3694.  
  3695.  
  3696. ΓòÉΓòÉΓòÉ 11.121. type ΓòÉΓòÉΓòÉ
  3697.  
  3698. type 
  3699.  
  3700.    1. The description of the data and the operations that can be performed on 
  3701.       or by the data.  See also data type. 
  3702.  
  3703.    2. In WorkFrame, describes a group of project files of parts in terms of an 
  3704.       expression, such as file masks, regular expressions, or a list of other 
  3705.       types, logical-OR'd. 
  3706.  
  3707.  
  3708. ΓòÉΓòÉΓòÉ <hidden> U ΓòÉΓòÉΓòÉ
  3709.  
  3710. Glossary terms begin on next panel. 
  3711.  
  3712.  
  3713. ΓòÉΓòÉΓòÉ 11.122. unattended mode ΓòÉΓòÉΓòÉ
  3714.  
  3715. unattended mode 
  3716.  
  3717. A mode in which no operator is present or in which no operator station is 
  3718. included at system generation. 
  3719.  
  3720.  
  3721. ΓòÉΓòÉΓòÉ <hidden> V ΓòÉΓòÉΓòÉ
  3722.  
  3723. Glossary terms begin on next panel. 
  3724.  
  3725.  
  3726. ΓòÉΓòÉΓòÉ 11.123. variable ΓòÉΓòÉΓòÉ
  3727.  
  3728. variable 
  3729.  
  3730. In programming languages, a language object that may take different values, one 
  3731. at a time. The values of a variable are usually restricted to a certain data 
  3732. type. ISO-JTC1. 
  3733.  
  3734.  
  3735. ΓòÉΓòÉΓòÉ 11.124. VGA ΓòÉΓòÉΓòÉ
  3736.  
  3737. VGA 
  3738.  
  3739. Video graphics adapter. 
  3740.  
  3741.  
  3742. ΓòÉΓòÉΓòÉ 11.125. video ΓòÉΓòÉΓòÉ
  3743.  
  3744. video 
  3745.  
  3746. Pertaining to the portion of recorded information that can be seen. 
  3747.  
  3748.  
  3749. ΓòÉΓòÉΓòÉ 11.126. video graphics adapter (VGA) ΓòÉΓòÉΓòÉ
  3750.  
  3751. video graphics adapter (VGA) 
  3752.  
  3753. A graphics controller for color displays. The pel resolution of the video 
  3754. graphics adapter is 4:4. 
  3755.  
  3756.  
  3757. ΓòÉΓòÉΓòÉ 11.127. visible ΓòÉΓòÉΓòÉ
  3758.  
  3759. visible 
  3760.  
  3761. Visibility of identifiers is based on scoping rules and is independent of 
  3762. access. 
  3763.  
  3764.  
  3765. ΓòÉΓòÉΓòÉ <hidden> W ΓòÉΓòÉΓòÉ
  3766.  
  3767. Glossary terms begin on next panel. 
  3768.  
  3769.  
  3770. ΓòÉΓòÉΓòÉ 11.128. Win32 ΓòÉΓòÉΓòÉ
  3771.  
  3772. Win32 
  3773.  
  3774. The name of a 32-bit application programming interface (API). 
  3775.  
  3776. See also Win32 API. 
  3777.  
  3778.  
  3779. ΓòÉΓòÉΓòÉ 11.129. Win32 API ΓòÉΓòÉΓòÉ
  3780.  
  3781. Win32 API 
  3782.  
  3783.    1. A set of Win32 functions that can be called from source code. 
  3784.  
  3785.    2. A 32 bit-bit version of the 16-bit Windows 3.1 API (native to Windows 
  3786.       NT). 
  3787.  
  3788.       See also Win32. 
  3789.  
  3790.  
  3791. ΓòÉΓòÉΓòÉ 11.130. Win32s ΓòÉΓòÉΓòÉ
  3792.  
  3793. Win32s 
  3794.  
  3795. A platform that the Win32 API is implemented on. (The s stands for subset.) It 
  3796. consists of a virtual-device driver and dynamic link libraries (DLLs) that add 
  3797. the Win32 API to the 16-bit Windows 3.n system. It includes structured 
  3798. exception handling and limited implementations of memory-mapped files. 
  3799.  
  3800. See also Win32 API and Windows 95. 
  3801.  
  3802.  
  3803. ΓòÉΓòÉΓòÉ 11.131. Windows NT ΓòÉΓòÉΓòÉ
  3804.  
  3805. Windows NT 
  3806.  
  3807. A platform that the Win32 API is implemented on. It is a portable, high-end 
  3808. operating system, which can run several different types of applications 
  3809. simultaneously. It is the only Win32 platform for machine architectures based 
  3810. on processors other than the x86, and it supports multiple processors. 
  3811.  
  3812. See also Win32 API. 
  3813.  
  3814.  
  3815. ΓòÉΓòÉΓòÉ 11.132. Windows 95 ΓòÉΓòÉΓòÉ
  3816.  
  3817. Windows 95 
  3818.  
  3819.    1. A 32-bit operating system that allows you to run 32-bit application. 
  3820.       Windows 95 is a multitasking, multithreaded operating system that can 
  3821.       control multiple programs at once. Each program can have multiple 
  3822.       concurrent threads or independently executing subcomponents. 
  3823.  
  3824.    2. A platform that the Win32 API is implemented on. It supports image color 
  3825.       matching, modems, and other services. It partially supports asynchronous 
  3826.       file I/O, debugging, registry, security, and event-logging functions. 
  3827.  
  3828.  
  3829. ΓòÉΓòÉΓòÉ 11.133. write ΓòÉΓòÉΓòÉ
  3830.  
  3831. write 
  3832.  
  3833.    1. To output characters to a file, such as standard output or standard 
  3834.       error. Unless otherwise stated, standard output is the default output 
  3835.       destination for all uses of the term write. X/Open. 
  3836.  
  3837.    2. To make a permanent or transient recording of data in a storage device or 
  3838.       on a data medium. ISO-JTC1. ANSI. 
  3839.  
  3840.  
  3841. ΓòÉΓòÉΓòÉ <hidden> Z ΓòÉΓòÉΓòÉ
  3842.  
  3843.  
  3844. ΓòÉΓòÉΓòÉ 12. Bibliography ΓòÉΓòÉΓòÉ
  3845.  
  3846. This bibliography lists the publications that make up the IBM VisualAge for C++ 
  3847. library and related publications. The list of related publications is not 
  3848. exhaustive but should be adequate for most VisualAge for C++ users. 
  3849.  
  3850.  
  3851. ΓòÉΓòÉΓòÉ 12.1. The IBM VisualAge for C++ Library ΓòÉΓòÉΓòÉ
  3852.  
  3853. The following books are part of the IBM VisualAge for C++ library. 
  3854.  
  3855.      Installation Guide and Product Overview, S33H-5030 
  3856.  
  3857.      User's Guide, S33H-5031 
  3858.  
  3859.      Programming Guide, S33H-5032 
  3860.  
  3861.      Visual Builder User's Guide, S33H-5034 
  3862.  
  3863.      Visual Builder Parts Reference, S33H-5035 
  3864.  
  3865.      Building VisualAge for C++ Parts for Fun and Profit, S33H-5036 
  3866.  
  3867.      Open Class Library User's Guide, S33H-5033 
  3868.  
  3869.      Open Class Library Reference, S33H-5039 
  3870.  
  3871.      Language Reference, S33H-5037 
  3872.  
  3873.      C Library Reference, S33H-5038 
  3874.  
  3875.      SOM Programming Guide, S33H-5043 
  3876.  
  3877.      SOM Programming Reference, S33H-5044 
  3878.  
  3879.  
  3880. ΓòÉΓòÉΓòÉ 12.2. C and C++ Related Publications ΓòÉΓòÉΓòÉ
  3881.  
  3882.      Portability Guide for IBM C, SC09-1405 
  3883.  
  3884.      American National Standard for Information Systems / International 
  3885.       Standards Organization - Programming Language C (ANSI/ISO 
  3886.       9899-1990[1992]) 
  3887.  
  3888.  
  3889. ΓòÉΓòÉΓòÉ 12.2.1. Non-IBM Publications ΓòÉΓòÉΓòÉ
  3890.  
  3891. Many books have been written about the C++ language and related programming 
  3892. topics. The authors use varying approaches and emphasis. The following is a 
  3893. sample of some non-IBM C++ publications that are generally available.  This 
  3894. sample is not an exhaustive list.  IBM does not specifically recommend any of 
  3895. these books, and other C++ books may be available in your locality. 
  3896.  
  3897.      The Annotated C++ Reference Manual by Margaret A. Ellis and Bjarne 
  3898.       Stroustrup, Addison-Wesley Publishing Company. 
  3899.  
  3900.      C++ Primer by Stanley B. Lippman, Addison-Wesley Publishing Company. 
  3901.  
  3902.      Object-Oriented Design with Applications by Grady Booch, 
  3903.       Benjamin/Cummings. 
  3904.  
  3905.      Object-Oriented Programming Using SOM and DSOM by Christina Lau, Van 
  3906.       Nostrand Reinhold. 
  3907.