home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / VSCPPv4.zip / VACPP / IBMCPP / HELP / CPPWELCM.INF (.txt) < prev    next >
OS/2 Help File  |  1995-05-15  |  123KB  |  1,068 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. About this Book ΓòÉΓòÉΓòÉ
  3.  
  4. This manual describes the IBM VisualAge C++ for OS/2 product (referred to as 
  5. VisualAge C++), its components, available documentation, as well as service and 
  6. support. The VisualAge C++ components give you the ability to edit, compile, 
  7. link, debug, analyze and browse C and C++ programs on the 32-bit Operating 
  8. System/2 (OS/2) system. 
  9.  
  10. This manual is for application and systems programmers who want an overview of 
  11. IBM VisualAge C++ for OS/2. It assumes you have a working knowledge of the C 
  12. and C++ programming languages, the OS/2 operating system, and related products. 
  13.  
  14. Before you begin to use this information, it would be helpful to understand how 
  15. to navigate through it. You can use the Table of Contents and Index facility to 
  16. locate topics and the Search facility to search the text of this document. You 
  17. can use hypertext links to acquire related information on the current topic. 
  18. Hypertext links appear in a different color (which you can customize using the 
  19. OS/2 Scheme Palette). For example, here is a link to another panel: 
  20. Communicating Your Comments to IBM. By double-clicking on the text of the link 
  21. or by pressing Enter on a highlighted link, you will open a panel of related 
  22. information. When you open a panel, the first link has the focus; to shift the 
  23. focus to other links, use the Tab key. 
  24.  
  25. You should also understand: 
  26.  
  27.      How to Use the Contents 
  28.      How to Obtain Additional Information 
  29.      How to Use Action Bar Choices 
  30.      How to Cut and Paste Examples 
  31.  
  32.  
  33. ΓòÉΓòÉΓòÉ 1.1. Notices ΓòÉΓòÉΓòÉ
  34.  
  35. Copyright International Business Machines Corporation, 1995. All rights 
  36. reserved. 
  37.  
  38. Note to U.S. Government Users - Documentation related to restricted rights - 
  39. Use, duplication, or disclosure is subject to restrictions set forth in GSA ADP 
  40. Schedule Contract with IBM Corp. 
  41.  
  42. First Edition, May 1995. 
  43.  
  44. This edition applies to Version 3.0 of IBM VisualAge C++ for OS/2 (30H1664, 
  45. 30H1665, 30H1666) and to all subsequent releases and modifications until 
  46. otherwise indicated in new editions.  Make sure you are using the correct 
  47. edition for the level of the product. 
  48.  
  49. This publication could include technical inaccuracies or typographical errors. 
  50. Changes are periodically made to the information herein; any such changes will 
  51. be reported in subsequent revisions. 
  52.  
  53. Requests for publications and for technical information about IBM products 
  54. should be made to your IBM Authorized Dealer or your IBM Marketing 
  55. Representative. 
  56.  
  57. When you send information to IBM, you grant IBM a nonexclusive right to use or 
  58. distribute the information in any ways it believes appropriate without 
  59. incurring any obligation to you. 
  60.  
  61. Any reference to an IBM licensed program in this publication is not intended to 
  62. state or imply that only IBM's licensed program may be used. Any functionally 
  63. equivalent product, program, or service that does not infringe any of IBM's 
  64. intellectual property rights may be used instead of the IBM product, program, 
  65. or service. Evaluation and verification of operation in conjunction with other 
  66. products, except  those expressly designated by IBM, is the user's 
  67. responsibility. 
  68.  
  69. IBM may have patents or pending patent applications covering subject matter in 
  70. this document.  The furnishing of this document does not give you any license 
  71. to these patents.  You can send license inquiries, in writing, to the IBM 
  72. Director of Licensing. IBM Corporation, 500 Columbus Avenue, Thornwood, NY, 
  73. 10594, USA. 
  74.  
  75. This publication contains examples of data and reports used in daily business 
  76. operations. To illustrate them as completely as possible, the examples include 
  77. the names of individuals, companies, brands, and products. All of these names 
  78. are fictitious and any similarity to the names and addresses used by an actual 
  79. business enterprise is entirely coincidental. 
  80.  
  81.  
  82. ΓòÉΓòÉΓòÉ 1.2. Trademarks and Service Marks ΓòÉΓòÉΓòÉ
  83.  
  84. The following terms used in this publication are trademarks or service marks of 
  85. IBM Corporation in the United States or other countries: 
  86.  
  87.       BookManager 
  88.       C Set ++ 
  89.       Common User Access 
  90.       CUA 
  91.       IBM 
  92.       Operating System/2 
  93.       OS/2 
  94.       Personal System/2 
  95.       Presentation Manager 
  96.       PS/2 
  97.       SOM 
  98.       System Object Model 
  99.       VisualAge 
  100.       WorkFrame/2 
  101.       Workplace Shell 
  102.  
  103.  Windows is a trademark of Microsoft Corporation. 
  104.  
  105.  Other company, product, and service names, which may be denoted by a double 
  106.  asterisk(**), may be trademarks or service marks of others. 
  107.  
  108.  
  109. ΓòÉΓòÉΓòÉ 1.3. How to Use the Contents ΓòÉΓòÉΓòÉ
  110.  
  111. When the Contents window first appears, some topics have a plus (+) sign beside 
  112. them. The plus sign indicates that additional topics are available. 
  113.  
  114. To expand the Contents if you are using a mouse, click on the plus sign. If you 
  115. are using the keyboard, use the Up or Down Arrow key to highlight the topic, 
  116. and press the plus (+) key. For example, How to Use the Contents has a plus 
  117. sign beside it.  To see additional topics for that heading, click on the plus 
  118. sign or highlight that topic and press the plus (+) key. 
  119.  
  120. To view a topic, double-click on the topic (or press the Up or Down Arrow key 
  121. to highlight the topic, and then press the Enter key). 
  122.  
  123.  
  124. ΓòÉΓòÉΓòÉ 1.4. How to Obtain Additional Information ΓòÉΓòÉΓòÉ
  125.  
  126. After you select a topic, the information for that topic appears in a window. 
  127. Highlighted words or phrases indicate that additional information is available. 
  128. Certain words and phrases are highlighted in a different color from the 
  129. surrounding text. These are called hypertext terms. 
  130.  
  131. If you are using a mouse, double-click on the highlighted word.  If you are 
  132. using a keyboard, press the Tab key to move to the highlighted word, and then 
  133. press the Enter key.  Additional information then appears in a window. 
  134.  
  135.  
  136. ΓòÉΓòÉΓòÉ 1.5. How to Use Action Bar Choices ΓòÉΓòÉΓòÉ
  137.  
  138. Several choices are available for managing the information presented in this 
  139. document. There are three menus on the action bar:  the Services menu, the 
  140. Options menu, and the Help menu. 
  141.  
  142. The actions that are selectable from the Services menu operate on the active 
  143. window currently displayed on the screen. These actions include the following: 
  144.  
  145.  Placing Bookmarks 
  146.    You can set a placeholder so you can retrieve information of interest to 
  147.    you. 
  148.  
  149.  Searching for Information 
  150.    You can find occurrences of a word or phrase in the current topic, 
  151.    selected topics, or all topics. 
  152.  
  153.  Printing Information 
  154.    You can print one or more topics. You can also print a set of topics by 
  155.    first marking the topics in the Contents list. 
  156.  
  157.  Copying Information to a File 
  158.    You can copy a topic that you are viewing to the System Clipboard or to a 
  159.    file that you can edit. This method is particularly useful for copying 
  160.    syntax definitions and program samples into the application that you are 
  161.    developing. 
  162.  
  163.  Using the actions that are selectable from the Options menu, you can change 
  164.  the way your Contents list is displayed. To expand the Contents and show all 
  165.  levels for all topics, choose Expand all from the Options pull-down. You can 
  166.  also press the Ctrl and * keys together. 
  167.  
  168.  The actions that are selectable from the Help menu allow you to select 
  169.  different types of help information. 
  170.  
  171.  For information about any of the menu choices, highlight the choice in the 
  172.  menu and press F1. 
  173.  
  174.  
  175. ΓòÉΓòÉΓòÉ 1.5.1. Placing Bookmarks ΓòÉΓòÉΓòÉ
  176.  
  177. When you place a bookmark on a topic, it is added to a list of bookmarks you 
  178. have previously set.  You can view the list, and you can remove one or all 
  179. bookmarks from the list.  If you have not set any bookmarks, the list is empty. 
  180.  
  181. To set a bookmark, do the following: 
  182.  
  183.    1. Select a topic from the Contents. 
  184.    2. When that topic appears, select the Bookmark option from the Services 
  185.       menu. 
  186.    3. If you want to change the name used for the bookmark, type the new name 
  187.       in the field. 
  188.    4. Click on the Place radio button (or press the Up or Down Arrow key to 
  189.       select it). 
  190.    5. Click on OK (or select it and press Enter). The bookmark is then added to 
  191.       the bookmark list. 
  192.  
  193.  
  194. ΓòÉΓòÉΓòÉ 1.5.2. Searching for Information ΓòÉΓòÉΓòÉ
  195.  
  196. You can specify a word or phrase to be searched.  You can also limit the search 
  197. to a set of topics by first marking the topics in the Contents list. 
  198.  
  199. To search for a word or phrase in all topics, do the following: 
  200.  
  201.    1. Select the Search option from the Services menu. 
  202.    2. Type the word or words to be searched for. 
  203.    3. Click on All sections (or press the Up or Down Arrow keys to select it). 
  204.    4. Click on Search (or select it and press Enter) to begin the search. 
  205.    5. The list of topics where the word or phrase appears is displayed. 
  206.  
  207.  
  208. ΓòÉΓòÉΓòÉ 1.5.3. Printing Information ΓòÉΓòÉΓòÉ
  209.  
  210. You can print one or more topics, the index, or the table of contents.  Make 
  211. sure that your printer is connected to the serial port, configured correctly, 
  212. and ready for input. To print: 
  213.  
  214.    1. Select Print from the Services pull-down. 
  215.    2. Select what you want to print. Note that the This section and Marked 
  216.       sections choices are only available if you are viewing a topic or if you 
  217.       have marked topics, respectively.  To mark topics in the table of 
  218.       contents, press the Ctrl key and click on the topics, or use the arrow 
  219.       keys. 
  220.    3. Select Print to print what you've chosen on your printer. 
  221.  
  222.  
  223. ΓòÉΓòÉΓòÉ 1.5.4. Copying Information to a File ΓòÉΓòÉΓòÉ
  224.  
  225. You can copy a topic that you are viewing in two ways: 
  226.  
  227.      Copy copies the topic that you are viewing into the System Clipboard.  If 
  228.       you are using a Presentation Manager (PM) editor (for example, the 
  229.       Enhanced Editor) that copies or cuts (or both) to the System Clipboard, 
  230.       and pastes to the System Clipboard, you can easily add the copied 
  231.       information to your program source module. 
  232.  
  233.      Copy to file copies the topic that you are viewing into a temporary file 
  234.       named TEXT.TMP.  You can later edit that file by using any editor. 
  235.       TEXT.TMP is placed in the directory where your viewable document resides. 
  236.  
  237.  To copy a topic, do the following: 
  238.  
  239.    1. Expand the Contents list and select a topic. 
  240.    2. When the topic appears, select Copy to file from the Services menu. 
  241.    3. The system puts the text pertaining to that topic into the temporary file 
  242.       TEXT.TMP. 
  243.  
  244.  
  245. ΓòÉΓòÉΓòÉ 1.6. How to Cut and Paste Examples ΓòÉΓòÉΓòÉ
  246.  
  247. You can copy examples (or information) from this reference/guide/book to 
  248. compile, link, and run them, or to paste them into your own code. 
  249.  
  250. To copy an example or information: 
  251.  
  252.    1. Make the topic you want to copy the active window. 
  253.  
  254.    2. From the Services menu, select Copy to file. The text in that topic is 
  255.       placed in the temporary file TEXT.TMP, in the same directory as this 
  256.       reference. 
  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. 
  262.  
  263.  
  264. ΓòÉΓòÉΓòÉ 1.7. Other Information You Might Find Helpful ΓòÉΓòÉΓòÉ
  265.  
  266. This product provides a number of online guides and references that we hope 
  267. you'll find helpful as you develop applications. This information includes 
  268. User's Guides, References, and How Do I help that gives you specific 
  269. instructions for performing common tasks. You can get to this online 
  270. information from the Information folder inside the main product folder.  You 
  271. can also get to it from the Help menu in any of the components of the product. 
  272.  
  273.  
  274. ΓòÉΓòÉΓòÉ 1.8. Communicating Your Comments to IBM ΓòÉΓòÉΓòÉ
  275.  
  276. If there is something you like, or dislike, about this book, please let us 
  277. know.  You can use one of the methods listed below to send your comments to 
  278. IBM.  Please be sure to include the complete title of the publication that you 
  279. are commenting on. 
  280.  
  281. The comments you send should only pertain to the information in this document 
  282. and its presentation.  To request additional publications or to ask questions 
  283. or make comments about the functions of IBM products or systems, you should 
  284. talk to your IBM representative or you authorized IBM remarketer. 
  285.  
  286. When you send comments to IBM, you grant IBM a nonexclusive right to use or 
  287. distribute your comments in any way it believes appropriate without incurring 
  288. any obligation to you. 
  289.  
  290. You can send your comments to IBM in the following ways: 
  291.  
  292.      By mail to the following address: 
  293.  
  294.             IBM Canada Ltd. Laboratory
  295.             Information Development
  296.             2G/345/1150/TOR
  297.             1150 EGLINTON AVENUE EAST
  298.             NORTH YORK, ONTARIO
  299.             CANADA M3C 1H7
  300.  
  301.      By FAX to the following number: 
  302.  
  303.         -  United States and Canada: (416) 448-6161 
  304.         -  Other countries (+1) 416-448-6161 
  305.  
  306.      By electronic mail to one of the following IDs.  Be sure to include your 
  307.       entire network address if you wish to get a reply. 
  308.  
  309.         -  Internet: torrcf@vnet.ibm.com 
  310.         -  IBMLink: toribm(torrcf) 
  311.         -  IBM/PROFS: torolab4(torrcf) 
  312.         -  IBMMAIL: ibmmail(caibmwt9 
  313.  
  314.  
  315. ΓòÉΓòÉΓòÉ 2. Introducing IBM VisualAge C++ for OS/2 ΓòÉΓòÉΓòÉ
  316.  
  317. IBM VisualAge C++ for OS/2 is a comprehensive and powerful C/C++ development 
  318. package for OS/2 programming. This new, OS/2 Warp-enabled release supports the 
  319. development of C and C++ applications through a full set of tools. The browser, 
  320. editor, compiler, linker, debugger, performance analyzer, visual builder, and 
  321. database access tools work together as an integrated set of tools. These 
  322. powerful, graphical tools are designed to help you as you progress through the 
  323. development cycle of your application. 
  324.  
  325. Each of the components is described in this online book. 
  326.  
  327. To use the VisualAge C++ product with a sample WorkFrame project and a simple 
  328. example, double-click on the Welcome to VisualAge C++ overview icon in the 
  329. VisualAge C++ folder. 
  330.  
  331.  
  332. ΓòÉΓòÉΓòÉ 2.1. VisualAge C++ Components ΓòÉΓòÉΓòÉ
  333.  
  334. This new version of VisualAge C++ includes a variety of components in an 
  335. integrated environment designed to support the development of C and C++ 
  336. applications, These components are: 
  337.  
  338.      To help you get started 
  339.  
  340.         -  Project Smarts - a set of pre-configured projects to start the more 
  341.            common development tasks 
  342.         -  WorkFrame - a fully-configurable environment that allows the 
  343.            integration of multiple tools 
  344.  
  345.      To help you code and edit 
  346.  
  347.         -  Visual Builder constructs entire applications, complete with 
  348.            windows, menu bars, entry fields, and icons 
  349.         -  Data Access Builder visually allows you to create C++ classes for 
  350.            easy access to DB2/2 relational databases 
  351.         -  IBM Open Class Library incorporates a rich and comprehensive set of 
  352.            building blocks 
  353.         -  The Browser provides fast and easy access to source program 
  354.            information 
  355.         -  The Editor is a powerful, language-sensitive C++ editor. 
  356.  
  357.      To help you compile and link 
  358.  
  359.         -  The Compiler and Linker generate highly optimized 32-bit code 
  360.         -  Direct-to-SOM (DTS) support provides a fast, simple way to create 
  361.            high quality SOM objects. 
  362.  
  363.      To help you test and debug 
  364.  
  365.         -  The Debugger helps you find and fix errors fast. 
  366.         -  The Performance Analyzer helps you time and tune your application 
  367.  
  368.  
  369. ΓòÉΓòÉΓòÉ 2.2. To Start ΓòÉΓòÉΓòÉ
  370.  
  371. The following VisualAge C++ components help you to start developing 
  372. applications. 
  373.  
  374.      Project Smarts - Create Pre-Configured Projects 
  375.      WorkFrame - Customize Your Development Environment 
  376.  
  377.  
  378. ΓòÉΓòÉΓòÉ 2.2.1. Project Smarts - Create Pre-Configured Projects ΓòÉΓòÉΓòÉ
  379.  
  380. Project Smarts is a tool to help you quickly get started writing VisualAge C++ 
  381. applications.  It is a catalog of skeletal applications you can use as a base 
  382. from which to write your own applications. 
  383.  
  384.  
  385. Project Smarts catalog
  386.  
  387. To use Project Smarts, find the Project Smarts icon in the VisualAge C++ folder 
  388. and double-click on it to open the Project Smarts catalog. It contains a list 
  389. of common applications, including: 
  390.  
  391.      C Dynamic Link Library 
  392.      C++ Dynamic Link Library 
  393.      Data Access Application 
  394.      Direct-to-SOM Application 
  395.      IPF Context-Sensitve Help 
  396.      IPF Document. 
  397.      Presentation Manager Application 
  398.      Resource Dynamic Link Library 
  399.      UI Class Library Application 
  400.      Visual Builder Application 
  401.      Workplace Shell Application 
  402.  
  403.  Select an application, click on the Create pushbutton, and Project Smarts 
  404.  creates a fully-configured, development-ready project on your desktop. A 
  405.  project represents the complete set of data and actions that you need to build 
  406.  a single target, such as a dynamic link library (DLL) or executable file 
  407.  (EXE). All the actions, options, and environment variables you need to develop 
  408.  a similar application are preconfigured for you.  Each project is created with 
  409.  template source files to get started quickly on the real work, without having 
  410.  to set up the basics every time.  Project Smarts applications are skeletal, 
  411.  but running, programs. 
  412.  
  413.  A Project Smarts application is distinct from a sample project; it does not 
  414.  teach you programming techniques or concepts. The code provides a starting 
  415.  point for you to build on when developing your own applications from the code 
  416.  templates. 
  417.  
  418.  
  419. ΓòÉΓòÉΓòÉ 2.2.2. WorkFrame - Customize Your Development Environment ΓòÉΓòÉΓòÉ
  420.  
  421. WorkFrame is a fully configurable and open integrating environment that lets 
  422. you mix and match your favorite tools with the ones provided by VisualAge C++. 
  423. In this way you can create and customize your personal development environment. 
  424.  
  425. WorkFrame gives you the flexibility to work with your files and perform project 
  426. actions that are most effective for you. For example: 
  427.  
  428.      Use the Build Smarts dialog to quickly switch between the most common 
  429.       build options.  Through a single dialog you specify whether you want to 
  430.       optimize, debug, browse, or analyze your code. Build Smarts temporarily 
  431.       increments your existing compiler and linker options to build the project 
  432.       the way you requested. Because Build Smarts does not change the compile 
  433.       and link options you may have specifically defined for the project, you 
  434.       can still perform your customized compile, link, make or build operations 
  435.       through WorkFrame dialogs. 
  436.  
  437.      You are given a variety of menu choices.  WorkFrame provides a menu bar 
  438.       and a tool bar in each project window (similar to conventional integrated 
  439.       development environments). If you prefer direct manipulation, you can use 
  440.       popup menus and drag and drop capability to start actions or change 
  441.       options. 
  442.  
  443.      You can launch actions defined in a project from a single VisualAge C++ 
  444.       tool.  For example, if you are editing source files, you can build the 
  445.       project from the editor. When the project builds cleanly, you can start 
  446.       the debugger (or any other VisualAge C++ tool) from the editor. 
  447.  
  448.  
  449. ΓòÉΓòÉΓòÉ 2.3. To Code and Edit ΓòÉΓòÉΓòÉ
  450.  
  451. The following VisualAge C++ components help you to code and edit: 
  452.  
  453.      Visual Builder - An Object-Oriented Visual Application Builder 
  454.      Data Access Builder - Build Classes to Access Relational Data 
  455.      VisualAge Browser - Fast, Easy Access to Program Information 
  456.      VisualAge Editor - A Powerful Language-Sensitive Editor 
  457.      IBM Open Class Library - A Comprehensive Set of Building Blocks 
  458.  
  459.  
  460. ΓòÉΓòÉΓòÉ 2.3.1. Visual Builder - An Object-Oriented Visual Application Builder ΓòÉΓòÉΓòÉ
  461.  
  462. Visual Builder is a visual programming tool that can help you create 
  463. object-oriented applications using the C++ programming language. 
  464.  
  465. Visual Builder gets you started by providing a set of parts as well as 
  466. interactive visual programming tools to work with those parts. You create your 
  467. applications by visually assembling and connecting these prefabricated parts. 
  468.  
  469. Visual programming with Visual Builder consists primarily of: 
  470.  
  471.    1. Creating a graphical user interface (GUI) from parts using the 
  472.       Composition Editor, and, parts supplied by Visual Builder, parts that you 
  473.       create, or both 
  474.  
  475.    2. Connecting the parts so that they interact with each other properly 
  476.  
  477.    3. Generating C++ code using Visual Builder's code generator. 
  478.  
  479.  You can extend Visual Builder by adding your own reusable, custom parts and 
  480.  then using these parts in your applications as you need them. You can also 
  481.  import or export these parts from other applications. The parts are treated as 
  482.  classes by Visual Builder. By developing a library of your own unique parts, 
  483.  tailored to the special requirements of your business, even large and complex 
  484.  applications can be created by visually arranging and connecting parts. 
  485.  
  486.  
  487. ΓòÉΓòÉΓòÉ 2.3.2. Data Access Builder - Build Classes to Access Relational Data ΓòÉΓòÉΓòÉ
  488.  
  489. The Data Access Builder allows you to create new object-oriented database 
  490. applications quickly and reliably by generating the source code and embedded 
  491. SQL for you.  Add, update, delete, and retrieve methods are generated for each 
  492. class. 
  493.  
  494. These database parts can be used directly in your programs, or you can import 
  495. them into Visual Builder.  By using Visual Builder to connect them to the GUI, 
  496. or other parts, you can create high quality applications quickly. 
  497.  
  498. Some of the key features of Data Access Builder are: 
  499.  
  500.      Map tables to classes.  Create new classes using your existing database 
  501.       tables.  You can create one class, or many classes, from any table.  Both 
  502.       C++ and SOM IDL code are supported. 
  503.  
  504.      Quick or custom mapping.  The Data Access Builder offers a quick map 
  505.       feature that allows you to do a column-to-attribute mapping.  By using 
  506.       inheritance,users are able to customize their classes to suit their 
  507.       needs. 
  508.  
  509.      Visual display of your mapping.  The Data Access Builder graphically 
  510.       displays the mapping of your database tables to the object classes.  This 
  511.       view allows visual editing and uses icons for tables, classes, and arrows 
  512.       to show the mappings. 
  513.  
  514.      Connection and transaction services.  Separate services are provided for 
  515.       connection and disconnection from your databases. In addition, commit and 
  516.       rollback operations are provided to handle transaction services. 
  517.  
  518.      DB2 Family support.  Access DB2/2 in a standalone environment or access 
  519.       DB2 through the DB2 Client Application Enabler. 
  520.  
  521.  
  522. ΓòÉΓòÉΓòÉ 2.3.3. VisualAge Browser - Fast, Easy Access to Program Information ΓòÉΓòÉΓòÉ
  523.  
  524. The Browser is a tool that lets you examine programs developed in VisualAge C++ 
  525. that use large and complex collections of interrelated classes in class 
  526. libraries. 
  527.  
  528.  
  529. Graph window showing all base and derived classes of IControl class
  530.  
  531. The Browser lets you look at your source code in many different ways.  You can: 
  532.  
  533.      List program objects by type (for example, all classes), by content 
  534.       (members of a class), or by components (all files) 
  535.  
  536.      View relationships between program components graphically, such as class 
  537.       inheritance hierarchies, function calls, and included files 
  538.  
  539.      View and edit the actual source code associated with a selected program 
  540.       element using your default editor 
  541.  
  542.      View online documentation for a class or class member.  That is, if you 
  543.       select a class or class member, you can directly access the reference 
  544.       manual entry for that class or class member. 
  545.  
  546.  The Browser allows you to view your program either after compilation or by 
  547.  using QuickBrowse from within the Browser. 
  548.  
  549.  The graphical user interface consists of two types of Browser windows: 
  550.  
  551.      A List window displays a list of program elements such as source files, 
  552.       functions, and classes 
  553.  
  554.      A Graph window displays program relationships in a graphical format, for 
  555.       example, all nodes in a class hierarchy. You can specify the level of 
  556.       detail you want the graph to show, scroll over the graph, zoom in and 
  557.       out, and select program elements directly from the graph. 
  558.  
  559.  
  560. ΓòÉΓòÉΓòÉ 2.3.4. VisualAge Editor - A Powerful Language-Sensitive Editor ΓòÉΓòÉΓòÉ
  561.  
  562. A new editor has been integrated into VisualAge C++. The Editor lets you build, 
  563. debug, browse, make, or issue other VisualAge C++ commands directly from your 
  564. editing session. 
  565.  
  566.  
  567. The Project Pulldown Menu in the Editor
  568.  
  569. It performs all the common editing tasks such as insert, delete, split and join 
  570. lines, find, block, and manipulate text, or undo changes, create and find 
  571. marks, and move between different source views. 
  572.  
  573. In addition, to make programming simpler and error free: 
  574.  
  575.      It is language sensitive.  It highlights in different fonts and colors 
  576.       for different types of language constructs.  Automatic indenting is 
  577.       provided.  It dynamically performs simple lexical error checking.  You 
  578.       can check your work by quickly navigating through each error without 
  579.       having to compile or leave the editor. 
  580.  
  581.      The editor helps you to review and understand the code by presenting 
  582.       several views of the source.  For example, you can display the function 
  583.       headers in the file to quickly see what is in the file and locate a 
  584.       function of interest.  You can also display the program's flow of 
  585.       control, or insert programming templates. 
  586.  
  587.      The editor is fully customizable.  You can: 
  588.  
  589.         -  Change key assignments 
  590.         -  Write external commands to extend editor capability 
  591.         -  Create additional parsers 
  592.         -  Configure the tool bar 
  593.         -  Select a personality.  It supports the look and feel of many common 
  594.            editors, such as the OS/2 editor EPM. 
  595.  
  596.      You can record a sequence of keyboard events as an LPEX REXX command and 
  597.       then modify it to be reused as an external command. 
  598.  
  599.  For more information about the using the VisualAge Editor, refer to the Editor 
  600.  chapter in the VisualAge C++ User's Guide. 
  601.  
  602.  
  603. ΓòÉΓòÉΓòÉ 2.3.5. IBM Open Class Library - A Comprehensive Set of Building Blocks ΓòÉΓòÉΓòÉ
  604.  
  605. The IBM Open Class Library provides you with a variety of building blocks to 
  606. use in your C++ programs.  Many of the fundamental components of C++ 
  607. applications have been provided as reusable, extensible classes.  IBM Open 
  608. Class helps you reduce your programming effort and avoid coding errors by 
  609. providing a comprehensive set of classes, from basic input/output operations 
  610. and string handling, through abstract data types and user interface support. 
  611.  
  612. The class libraries are: 
  613.  
  614.      Collection Classes 
  615.      User Interface Classes 
  616.      Application Support Classes 
  617.      Standard Classes 
  618.  
  619.  
  620. ΓòÉΓòÉΓòÉ 2.3.5.1. Collection Classes ΓòÉΓòÉΓòÉ
  621.  
  622. The Collection Classes offer a complete set of abstract data types such as 
  623. sequences, sets, bags, and trees. These classes help to reduce errors and 
  624. simplify the task of standardizing the format of data when designing programs 
  625. or passing data between modules. 
  626.  
  627. The Collection Classes deliver: 
  628.  
  629.      A choice of several underlying implementations are each optimized for 
  630.       different requirements: array, linked list, hash table, AVL tree, and 
  631.       B*-tree.  Since these implementations provide the same programming 
  632.       interface, as you tune the performance of your application, you can 
  633.       select the best underlying implementation for the same data type 
  634.       abstraction without changing your source code. 
  635.  
  636.      Completeness of abstract data types.  For instance, all abstract data 
  637.       types have complete sorted and keyed versions. 
  638.  
  639.      Flexible parameterization.  You can implement your own memory manager. 
  640.  
  641.      Flexible definition of element operations.  Default equality and and 
  642.       comparison operators can be overridden with your own definition. 
  643.  
  644.  
  645. ΓòÉΓòÉΓòÉ 2.3.5.2. User Interface Classes ΓòÉΓòÉΓòÉ
  646.  
  647. The User Interface Classes provide a comprehensive set of classes for 
  648. programming graphical user interfaces on OS/2, AIX, and Windows.  These classes 
  649. simplify the coding of GUI applications and result in a more portable, reusable 
  650. object-oriented user interface. 
  651.  
  652. IBM Open Class gives you a consistent way to write user interface code without 
  653. having to program to the low-level system APIs. IBM Open Class exploits the 
  654. underlying operating system services. For example, the user interface classes 
  655. exploit Motif services on AIX and Presentation Manager services on OS/2. 
  656.  
  657. The User Interface Classes let you: 
  658.  
  659.      Create and display windows using title bars, varying sizes and styles 
  660.      Include controls such as menus, buttons, text, list boxes, sliders, 
  661.       notebooks, and containers, withnew support for animated pushbuttons 
  662.      Draw canvases with flexible window layouts that allow automatic redrawing 
  663.       and aligning of cells independent of the display device 
  664.      Provide direct manipulation (drag and drop) support 
  665.      Add multimedia with classes for constructing many different devices like 
  666.       a midi sequencer, wave file playing and editing, digital video players 
  667.       and recorders, programmable CD players, amplifier and mixer, and the 
  668.       master audio control 
  669.      Provide 2-D graphics support for drawing primitives (lines and arcs) plus 
  670.       support for reading and displaying various graphic formats, such as GIF, 
  671.       PIF, BMP, and others 
  672.      Create and manage a tool bar, including being able to move, change, and 
  673.       resize it 
  674.      Create parts, using the parts notification framework, for Visual Builder 
  675.      Communicate between OS/2 applications running on the same machine using 
  676.       Dynamic Data Exchange (DDE) 
  677.      Display help, define contextual help, and handle help keys, plus new 
  678.       fly-over help that comes up automatically when the mouse pointer is on an 
  679.       object 
  680.      Cut, copy, and paste to and from the clipboard. 
  681.  
  682.  You can use all of these classes as provided or extend and tailor them, 
  683.  combine them with other class libraries to develop complete object-oriented 
  684.  applications. 
  685.  
  686.  
  687. ΓòÉΓòÉΓòÉ 2.3.5.3. Application Support Classes ΓòÉΓòÉΓòÉ
  688.  
  689. The Application Support Classes provide the basic abstractions required during 
  690. the creation of most C++ applications, including: 
  691.  
  692.      String manipulation classes 
  693.      Date and time classes 
  694.      Error handling and trace classes. 
  695.  
  696.  The string classes define a data type for strings and provide member functions 
  697.  that let you perform a variety of data manipulation and management activities. 
  698.  They provide capabilities beyond those available with standard C strings in 
  699.  the string.h library functions. 
  700.  
  701.  The string classes have the following capabilities: 
  702.  
  703.      String buffers are handled automatically 
  704.      Strings can contain both SBCS and MBCS characters 
  705.      Strings can be indexes by character or by word 
  706.      Strings can contain null characters (there are no restrictions on the 
  707.       contents of a string object). 
  708.  
  709.  The string class members allow you to: 
  710.  
  711.      Use strings in input and output 
  712.      Access information about strings 
  713.      Compare strings 
  714.      Test the characteristics os strings 
  715.      Search for characters or words within a string 
  716.      Manipulate and edit strings 
  717.      Convert strings to and from numeric types 
  718.      Format strings by adding or removing white space. 
  719.  
  720.  The date and time classes provide you with data types to store and manipulate 
  721.  date and time information.  With these classes you can create date and time 
  722.  objects, and use member functions to do the following: 
  723.  
  724.      Write date and time objects to an output stream 
  725.      Access detailed information about dates or times 
  726.      Compare dates or times 
  727.      Add or subtract days from a date, or hours, minutes, or seconds from a 
  728.       time 
  729.      Convert between date formats or time formats. 
  730.  
  731.  The exception classes provide the framework for throwing exceptions within the 
  732.  class libraries.  The trace class helps in tracing exceptions. 
  733.  
  734.  
  735. ΓòÉΓòÉΓòÉ 2.3.5.4. Standard Classes ΓòÉΓòÉΓòÉ
  736.  
  737. The Standard Classes consist of the standard I/O Stream library and the Complex 
  738. library. 
  739.  
  740. The I/O Stream Library provides you with the facilities to deal with many 
  741. varieties of C++ input and output.  You can derive classes from this library to 
  742. customize the input and output facilities for your own particular needs. 
  743.  
  744. The Complex Library gives you the capability to manipulate complex (imaginary) 
  745. numbers and perform standard mathematical operations on them. 
  746.  
  747.  
  748. ΓòÉΓòÉΓòÉ 2.4. To Compile and Link ΓòÉΓòÉΓòÉ
  749.  
  750. VisualAge C++ provides the following components to help you compile and link: 
  751.  
  752.      VisualAge Compiler and Linker - Generate Highly-Optimized 32-bit Code 
  753.      Direct-to-SOM (DTS) Support - Create High Quality SOM Objects 
  754.  
  755.  
  756. ΓòÉΓòÉΓòÉ 2.4.1. VisualAge Compiler and Linker - Generate Highly-Optimized 32-bit Code ΓòÉΓòÉΓòÉ
  757.  
  758. The Compiler and Linker generate highly optimized C and C++ code and make 
  759. efficient use of disk and memory space. To produce the most efficient code 
  760. possible, VisualAge C++ uses such advanced optimization techniques as: 
  761.  
  762.      Instruction scheduling 
  763.      Code hoisting 
  764.      Global register allocation 
  765.      User code inlining 
  766.      Intermodule optimizations. 
  767.  
  768.  Code can be optimized for any Intel architecture processor from the i386 to 
  769.  the Pentium. 
  770.  
  771.  New memory management algorithms in the C and C++ runtimes make efficient use 
  772.  of memory to reduce the amount of memory overhead in your programs. 
  773.  
  774.  If you need to minimize how much disk space your application uses, the 
  775.  compiler has a new minimize size option. While generating code for debugging, 
  776.  disk space can also be saved with the new set of debug support options. This 
  777.  can reduce the size of debug-ready executables without the loss of debug 
  778.  information. Also, the line number only debugging support offers the option of 
  779.  a lower level of debug support with almost no increase in executable size. 
  780.  
  781.  In addition, linker optimization options improve resolution of function and 
  782.  member function calls.  These options can significantly reduce the size of 
  783.  your application files. 
  784.  
  785.  The VisualAge C++ compiler and linker are fast and highly usable. Compile time 
  786.  has been improved, especially with the use of improved precompiled headers. 
  787.  The new 32-bit linker with automatic template resolution (without prelinking) 
  788.  improves link time over that of the previous linker (LINK386).  It also 
  789.  supports most of the options of the previous linker with the new linker 
  790.  options. 
  791.  
  792.  
  793. ΓòÉΓòÉΓòÉ 2.4.2. Direct-to-SOM (DTS) Support - Create High Quality SOM Objects ΓòÉΓòÉΓòÉ
  794.  
  795. Direct-to-SOM (DTS) is a standard for implementing flexible and reusable 
  796. objects, supported by the tools of VisualAge C++.  DTS combines standard C++ 
  797. syntax with IBM's System Object Model (SOM). 
  798.  
  799. With VisualAge C++ you generate SOM objects directly from the C++ compiler by 
  800. turning on a compiler option.  The compiler generates the corresponding 
  801. Interface Definition Language (IDL) for use in interlanguage or Distributed SOM 
  802. (DSOM) applications. The VisualAge C++ Browser shows SOM objects in a different 
  803. color than a C++ object. The Data Access Builder has options to generate SOM 
  804. classes (or IDL code).  The VisualAge C++ Debugger provides debug support for 
  805. SOM objects. 
  806.  
  807. SOM improves your C++ programming productivity: 
  808.  
  809.      Release to release binary compatibility removes the dependency between 
  810.       the code that implements a class and the code that uses it. This 
  811.       compatibility allows you to create and deploy a new version of a class, 
  812.       with added function or data members, and with inheritance from new base 
  813.       classes, without the need to recompile unchanged code. By packaging your 
  814.       SOM class in a DLL, you can replace the existing DLL with the new one, 
  815.       and all applications that use it will continue to run. 
  816.  
  817.      Extensive dynamic facilities let you query properties of objects and 
  818.       classes, and the use of the classes and methods whose names are not known 
  819.       until execution time.  Applications can be extended by incrementally 
  820.       installing new applications that the application is told about through a 
  821.       configuration file or by user input. 
  822.  
  823.      Distributed SOM (DSOM) allows access to objects between processes, or 
  824.       across networks. 
  825.  
  826.  With DTS you write C++ directly and this lets you use C++ features in your SOM 
  827.  classes that were not available before DTS.  These features include templates, 
  828.  operators, constructors with parameters, default parameters, and static 
  829.  members. 
  830.  
  831.  
  832. ΓòÉΓòÉΓòÉ 2.5. To Test and Debug ΓòÉΓòÉΓòÉ
  833.  
  834. VisualAge C++ provides the following components to help you test and debug: 
  835.  
  836.      VisualAge Debugger - Find and Fix Coding Errors Fast 
  837.      VisualAge Performance Analyzer - Time and Tune Your Code 
  838.  
  839.  
  840. ΓòÉΓòÉΓòÉ 2.5.1. VisualAge Debugger - Find and Fix Coding Errors Fast ΓòÉΓòÉΓòÉ
  841.  
  842. The Debugger is your primary tool for detecting and diagnosing coding errors. 
  843.  
  844.  
  845. Program monitor and a debug source view
  846.  
  847. The user interface gives you the ability to debug at the source level, as well 
  848. as providing access to common debugger functions such as step, run, set 
  849. breakpoints, monitor variables, display the call stack, display registers, and 
  850. display storage. 
  851.  
  852. The Debugger provides the following built-in tools to help locate problems and 
  853. fix code quickly: 
  854.  
  855.      The Window Analysis tool displays a three-dimensional view of all the 
  856.       windows your program creates, including the window characteristics and 
  857.       relationships 
  858.  
  859.      The Message Queue Monitor actively monitors Presentation Manager messages 
  860.  
  861.      C++ debugging features include template support, locate overloaded 
  862.       functions, class display, and debugging code in include files 
  863.  
  864.      Automatic heap checking to help isolate memory management problems by 
  865.       checking for memory overwriting each time your program starts executing. 
  866.  
  867.  
  868. ΓòÉΓòÉΓòÉ 2.5.2. VisualAge Performance Analyzer - Time and Tune Your Code ΓòÉΓòÉΓòÉ
  869.  
  870. The Performance Analyzer helps you time and tune your applications by 
  871. collecting execution data in a trace file and presenting it in several 
  872. graphical diagrams. 
  873.  
  874.  
  875. Call Nesting diagram
  876.  
  877. The trace file lets you : 
  878.  
  879.      See a detailed record of function calls and returns. Locate the areas 
  880.       within an application where a disproportionate amount of time is spent. 
  881.  
  882.      View the function call stack any place in the application to see the 
  883.       history of events leading up to the point the program stopped. 
  884.  
  885.      Determine multithread interactions and expose problems with critical 
  886.       sections by looking at the sequencing of procedures across threads. 
  887.  
  888.  Using these diagrams, you can improve the performance of an application, 
  889.  examine what led to certain faults, and understand what happens when your 
  890.  application runs. 
  891.  
  892.  
  893. ΓòÉΓòÉΓòÉ 3. Bibliography ΓòÉΓòÉΓòÉ
  894.  
  895.  This bibliography lists the publications that make up the IBM VisualAge C++ 
  896. library and publications of related IBM products referenced in this book.  The 
  897. list of related publications is not exhaustive but should be adequate for most 
  898. VisualAge C++ users. 
  899.  
  900.  
  901. ΓòÉΓòÉΓòÉ 3.1. The IBM VisualAge C++ Library ΓòÉΓòÉΓòÉ
  902.  
  903. The following books are part of the IBM VisualAge C++ library. 
  904.  
  905.      Read Me First!, S25H-6956 
  906.  
  907.      Welcome to VisualAge C++, S25H-6957 
  908.  
  909.      User's Guide, S25H-6961 
  910.  
  911.      Programming Guide, S25H-6958 
  912.  
  913.      Visual Builder User's Guide, S25H-6960 
  914.  
  915.      Visual Builder Parts Reference, S25H-6967 
  916.  
  917.      Building VisualAge C++ Parts for Fun and Profit, S25H-6968 
  918.  
  919.      Open Class Library User's Guide, S25H-6962 
  920.  
  921.      Open Class Library Reference, S25H-6965 
  922.  
  923.      Language Reference, S25H-6963-00 
  924.  
  925.      C Library Reference, S25H-6964 
  926.  
  927.  
  928. ΓòÉΓòÉΓòÉ 3.2. The IBM VisualAge C++ BookManager Library ΓòÉΓòÉΓòÉ
  929.  
  930. The following documents are available in VisualAge C++ in BookManager format. 
  931.  
  932.      Read Me First!, S25H-6956 
  933.  
  934.      Welcome to VisualAge C++, S25H-6957 
  935.  
  936.      User's Guide, S25H-6961 
  937.  
  938.      Programming Guide, S25H-6958 
  939.  
  940.      Visual Builder User's Guide, S25H-6960 
  941.  
  942.      Visual Builder Parts Reference, S25H-6967 
  943.  
  944.      Building VisualAge C++ Parts for Fun and Profit, S25H-6968 
  945.  
  946.      Open Class Library User's Guide, S25H-6962 
  947.  
  948.      Open Class Library Reference, S25H-6965 
  949.  
  950.      Language Reference, S25H-6963-00 
  951.  
  952.      C Library Reference, S25H-6964 
  953.  
  954.  
  955. ΓòÉΓòÉΓòÉ 3.3. C and C++ Related Publications ΓòÉΓòÉΓòÉ
  956.  
  957.      Portability Guide for IBM C, SC09-1405 
  958.  
  959.      American National Standard for Information Systems / International 
  960.       Standards Organization - Programming Language C (ANSI/ISO 
  961.       9899-1990[1992]) 
  962.  
  963.      Draft Proposed American National Standard for Information Systems - 
  964.       Programming Language C++ (X3J16/92-0060) 
  965.  
  966.  
  967. ΓòÉΓòÉΓòÉ 3.4. IBM OS/2 2.1 Publications ΓòÉΓòÉΓòÉ
  968.  
  969. The following books describe the OS/2 2.1 operating system and the Developer's 
  970. Toolkit 2.1. 
  971.  
  972.      OS/2 2.1 Using the Operating System, S61G-0703 
  973.  
  974.      OS/2 2.1 Installation Guide, S61G-0704 
  975.  
  976.      OS/2 2.1 Quick Reference, S61G-0713 
  977.  
  978.      OS/2 2.1 Command Reference, S71G-4112 
  979.  
  980.      OS/2 2.1 Information and Planning Guide, S61G-0913 
  981.  
  982.      OS/2 2.1 Keyboard and Codepages, S71G-4113 
  983.  
  984.      OS/2 2.1 Bidirectional Support, S71G-4114 
  985.  
  986.      OS/2 2.1 Book Catalog, S61G-0706 
  987.  
  988.      Developer's Toolkit for OS/2 2.1: Getting Started, S61G-1634 
  989.  
  990.  
  991. ΓòÉΓòÉΓòÉ 3.5. IBM OS/2 3.0 Publications ΓòÉΓòÉΓòÉ
  992.  
  993.      User's Guide to OS/2 Warp, G25H-7196-01 
  994.  The following books make up the OS/2 3.0 Technical Library (G25H-7116). 
  995.  
  996.      Control Program Programming Guide, G25H-7101 
  997.  
  998.      Control Program Programming Reference, G25H-7102 
  999.  
  1000.      Presentation Manager Programming Guide - The Basics, G25H-7103 
  1001.  
  1002.      Presentation Manager Programming Guide - Advanced Topics, G25H-7104 
  1003.  
  1004.      Presentation Manager Programming Reference, G25H-7105 
  1005.  
  1006.      Graphics Programming Interface Programming Guide, G25H-7106 
  1007.  
  1008.      Graphics Programming Interface Programming Reference, G25H-7107 
  1009.  
  1010.      Workplace Shell Programming Guide, G25H-7108 
  1011.  
  1012.      Workplace Shell Programming Reference, G25H-7109 
  1013.  
  1014.      Information Presentation Facility Programming Guide, G25H-7110 
  1015.  
  1016.      OS/2 Tools Reference, G25H-7111 
  1017.  
  1018.      Multimedia Application Programming Guide, G25H-7112 
  1019.  
  1020.      Multimedia Subsystem Programming Guide, G25H-7113 
  1021.  
  1022.      Multimedia Programming Reference, G25H-7114 
  1023.  
  1024.      REXX User's Guide, S10G-6269 
  1025.  
  1026.      REXX Reference, S10G-6268 
  1027.  
  1028.  
  1029. ΓòÉΓòÉΓòÉ 3.6. Other Books You Might Need ΓòÉΓòÉΓòÉ
  1030.  
  1031. The following list contains the titles of IBM books that you might find 
  1032. helpful.  These books are not part of the VisualAge C++ or OS/2 libraries. 
  1033.  
  1034.  
  1035. ΓòÉΓòÉΓòÉ 3.6.1. BookManager READ/2 Publications ΓòÉΓòÉΓòÉ
  1036.  
  1037.      IBM BookManager READ/2: General Information, GB35-0800 
  1038.  
  1039.      IBM BookManager READ/2: Getting Started and Quick Reference, SX76-0146 
  1040.  
  1041.      IBM BookManager READ/2: Displaying Online Books, SB35-0801 
  1042.  
  1043.      IBM BookManager READ/2: Installation, GX76-0147 
  1044.  
  1045.  
  1046. ΓòÉΓòÉΓòÉ 3.6.2. Non-IBM Publications ΓòÉΓòÉΓòÉ
  1047.  
  1048. Many books have been written about the C++ language and related programming 
  1049. topics. The authors use varying approaches and emphasis. The following is a 
  1050. sample of some non-IBM C++ publications that are generally available.  This 
  1051. sample is not an exhaustive list.  IBM does not specifically recommend any of 
  1052. these books, and other C++ books may be available in your locality. 
  1053.  
  1054.      The Annotated C++ Reference Manual by Margaret A. Ellis and Bjarne 
  1055.       Stroustrup, Addison-Wesley Publishing Company. 
  1056.  
  1057.      C++ Primer by Stanley B. Lippman, Addison-Wesley Publishing Company. 
  1058.  
  1059.      Object-Oriented Design with Applications by Grady Booch, 
  1060.       Benjamin/Cummings. 
  1061.  
  1062.      Object-Oriented Programming Using SOM and DSOM by Christina Lau, Van 
  1063.       Nostrand Reinhold. 
  1064.  
  1065.      OS/2 C++ Class Library: Power GUI Programming with C Set ++ by Kevin 
  1066.       Leong, William Law, Robert Love, Hiroshi Tsuji, and Bruce Olson, John 
  1067.       Wiley & Sons, Inc. 
  1068.