home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional Developers Kit 1992 November / Disc01 / Disc01.mdf / runnable / ibmwf / help / dde3wf.inf (.txt) < prev   
Encoding:
OS/2 Help File  |  1991-12-20  |  61.2 KB  |  2,240 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Special Notices ΓòÉΓòÉΓòÉ
  3.  
  4. References in this help to IBM products, programs, or services do not imply 
  5. that IBM intends to make these available in all countries in which IBM 
  6. operates. 
  7.  
  8. Any reference to an IBM licensed program in this help is not intended to state 
  9. or imply that only IBM's licensed program may be used. Any functionally 
  10. equivalent product, program, or service that does not infringe any of IBM's 
  11. intellectual property rights may be used instead of the IBM product, program, 
  12. or service. 
  13.  
  14. Evaluation and verification of operation in conjunction with other products, 
  15. except those expressly designated by IBM, is the user's responsibility. 
  16.  
  17. IBM may have patents or pending patent applications covering subject matter in 
  18. this help. The furnishing of this help does not give you any license to these 
  19. patents. 
  20.  
  21. The following terms, denoted by an asterisk (*) in this help, are trademarks of 
  22. the IBM Corporation in the United States and/or other countries: 
  23.  
  24.  C/2 
  25.  C Set/2 
  26.  IBM 
  27.  OS/2 
  28.  Operating System/2 
  29.  Presentation Manager 
  30.  WorkFrame/2 
  31.  
  32.  This help contains examples of data and reports used in daily business 
  33.  operations. To illustrate them as completely as possible, the examples include 
  34.  the names of individuals, companies, brands, and products. All of these names 
  35.  are fictitious and any similarity to the names and addresses used by an actual 
  36.  business enterprise is entirely coincidental. 
  37.  
  38.  
  39. ΓòÉΓòÉΓòÉ 2.   ΓòÉΓòÉΓòÉ
  40.  
  41.  
  42. ΓòÉΓòÉΓòÉ 3. Γûá IBM WorkFrame/2* Concepts ΓòÉΓòÉΓòÉ
  43.  
  44.  
  45. ΓòÉΓòÉΓòÉ 4. IBM WorkFrame/2* Concepts ΓòÉΓòÉΓòÉ
  46.  
  47. The IBM WorkFrame/2* program (also referred to as the WorkFrame/2*) provides a 
  48. programming environment that lets you: 
  49.  
  50.  o Manage a group of files as a project . 
  51.  o Associate a language profile with your project to describe the compiler, 
  52.    linker, debugger, and make utility to use. 
  53.  o Integrate your own tools. 
  54.  o Use a mouse to directly manipulate items. 
  55.  o Customize the environment to suit your own needs. 
  56.  
  57.  These features help to streamline the development cycle under the WorkFrame/2* 
  58.  product. 
  59.  
  60.  
  61. ΓòÉΓòÉΓòÉ 4.1. Projects ΓòÉΓòÉΓòÉ
  62.  
  63. Instead of working with individual files and directories, the WorkFrame/2* 
  64. product uses projects. 
  65.  
  66. A project consists of a collection of related files within a directory and its 
  67. characteristics. These characteristics include a set of options for compiling, 
  68. linking, making, debugging, and running your program, as well as a language 
  69. profile. 
  70.  
  71. To begin actual development using the WorkFrame/2* product, the first thing you 
  72. must do is create a project. Use the Project Control option from the File 
  73. pulldown to display the Project Control window. Use the New pushbutton to 
  74. create a new project. 
  75.  
  76. You can create two types of projects: base and composite. A base project is 
  77. generally used to group the set of files used to build a single executable 
  78. module or DLL. A composite project is simply a collection of other base and/or 
  79. composite projects that allow you to build more complex applications involving 
  80. multiple executable modules or DLLs. 
  81.  
  82. You can create several projects with the same project directory and target 
  83. file, and vary other characteristics to tailor each project to a different 
  84. stage of the program's development.  For example, you can associate a different 
  85. set of options to each project to create a debugging version, a test version, 
  86. and a finished version of the same program. 
  87.  
  88.  
  89. ΓòÉΓòÉΓòÉ 4.2. Language Profiles ΓòÉΓòÉΓòÉ
  90.  
  91. Each base project you develop must have an associated language profile. The 
  92. language profile defines a number of things, including: 
  93.  
  94.  o The compiler, linker, debugger, and make utility to be used with the 
  95.    project. 
  96.  o The files (DLLs) that provide options for the above tools. 
  97.  o The default argument string used when invoking the make and debug tools. 
  98.  o The include and library search paths. 
  99.  
  100.  Language profiles can be identified by the .PRF file extension. 
  101.  
  102.  Use the Language profile management option from the Tools pulldown to create 
  103.  and modify your language profiles. 
  104.  
  105.  The WorkFrame/2* product provides a default language profile that you can 
  106.  modify for use with most compilers. Some products may provide their own 
  107.  language profiles. 
  108.  
  109.  
  110. ΓòÉΓòÉΓòÉ 4.3. The Development Cycle ΓòÉΓòÉΓòÉ
  111.  
  112. This section presents an overview of how you use the WorkFrame/2* to develop an 
  113. application. 
  114.  
  115. Notes 
  116.  
  117.  o Before you begin creating applications, you should first decide how your 
  118.    existing files and directories will map into WorkFrame/2* projects, both 
  119.    base and composite. 
  120.  o To perform the steps outlined in this section, you must have a compiler, 
  121.    linker, debugger, and make utility installed. You must also have a language 
  122.    profile that specifies each of these tools. 
  123.  
  124.   1. The first step is to create a project. If the Project Control window is 
  125.      not already displayed, select Project Control from the File pulldown. 
  126.      Click on New from the Project Control window, and specify the 
  127.      characteristics you want to associate with the project. 
  128.  
  129.   2. When you have specified the project characteristics, click on OK in the 
  130.      Create window. The new project name appears in the Project Control window. 
  131.      Then click on Cancel to close the New Project window. 
  132.  
  133.   3. To open or display your new project, select the project name and then 
  134.      click on Open, or double-click on the project name. If the project is a 
  135.      base project, a window appears with a list of the project files.  If the 
  136.      project is a composite project, the window contains a list of the 
  137.      subprojects that make up the composite project. The following steps assume 
  138.      the project is a base project. 
  139.  
  140.   4. If your project already contains some files, you can proceed to the next 
  141.      step. If you want to create a new source file, click on New from the 
  142.      project window. You are prompted for a file name, and the editor is 
  143.      invoked automatically. Once you have saved and closed your file, click on 
  144.      Refresh to refresh the project window (the window is not automatically 
  145.      refreshed after every action is completed). 
  146.  
  147.   5. Use the Actions pulldown to create your target file. You can select Build 
  148.      or Make to create the file in one step, or use Compile and Link to compile 
  149.      and link separately. A monitor window displays the messages and results of 
  150.      the action. 
  151.  
  152.      If you are compiling, linking, or building, select the file or files in 
  153.      the base project window before performing the action. 
  154.  
  155.      Note:  The invocation of the Make action requires a make file.  If a make 
  156.             file does not exist for the project and you want to create one, 
  157.             select Make File Creation from the Tools pulldown. You can specify 
  158.             the actions you want the make file to perform, and the compile and 
  159.             link options you want used.  If you do not specify any options 
  160.             here, the make file uses the options associated with the project. 
  161.  
  162.   6. Run your application by selecting Run from the Actions pulldown, or by 
  163.      double-clicking on the executable file in the project window. 
  164.  
  165.   7. Use Debug from the Actions pulldown to invoke the debugger and debug your 
  166.      target file if it is an executable program. 
  167.  
  168.      Note:  If your compiler or linker has options to generate debug 
  169.      information, you must set them on to be able to debug your program if it 
  170.      is an executable file. 
  171.  
  172.   8. If the application is a tool, you can then use the Configure pulldown to 
  173.      add it to the WorkFrame/2* New Tools window, where you can access it from 
  174.      a pulldown menu.  You can also drag the project from the Project Control 
  175.      window to the Tools list. 
  176.  
  177.   9. When the tool or application is no longer needed, you can delete it from 
  178.      the Tools list, and then delete the project itself from the Project 
  179.      Control window. 
  180.  
  181.  
  182. ΓòÉΓòÉΓòÉ 4.4. Customizing the Environment ΓòÉΓòÉΓòÉ
  183.  
  184. You can change the WorkFrame/2* appearance to fit your own needs.  Use your 
  185. mouse or keyboard to change the size, shape, and positions of both the main 
  186. window and title bar and of the secondary windows. 
  187.  
  188. Use the Configure pulldown menu to further customize your environment. You can 
  189. specify the editor you want to use, the tools you want in your Tools list, and 
  190. the sessions to include in the Switch List. 
  191.  
  192. You can change the client area to a different color or to a bitmap, and set the 
  193. colors and fonts for the different list boxes. 
  194.  
  195. You can also customize the sound and animation features, how you want tools and 
  196. monitor windows to appear, and how your window positions are saved. 
  197.  
  198. You can save your customized changes with the Save Settings pulldown item. 
  199.  
  200.  
  201. ΓòÉΓòÉΓòÉ 4.5. Integrating Tools ΓòÉΓòÉΓòÉ
  202.  
  203. Use the Tools option from the Configure pulldown to add or delete tools in the 
  204. Tools pulldown. 
  205.  
  206. You can also use this option to change the characteristics assigned to existing 
  207. tools. 
  208.  
  209.  
  210. ΓòÉΓòÉΓòÉ 4.6. Hints on Using Your Mouse ΓòÉΓòÉΓòÉ
  211.  
  212. The WorkFrame/2* interface offers some features that are ideal for mouse users. 
  213. In most windows, you can double-click on an item to perform actions. For 
  214. example, double-click 
  215.  
  216.  o On a source file to invoke the editor. 
  217.  o On an executable to run the program. 
  218.  o On an object file within the LIB utility window to show details of the 
  219.    object module. 
  220.  
  221.  You can use dragging to copy and delete files, or to copy the characteristics 
  222.  of a project or tool to another project or tool.  For example, you can delete 
  223.  a file by dragging it to the Waste icon. 
  224.  
  225.  You can also change the size of a window by dragging its borders, or move the 
  226.  window by dragging the title bar. 
  227.  
  228.  
  229. ΓòÉΓòÉΓòÉ 5.   ΓòÉΓòÉΓòÉ
  230.  
  231.  
  232. ΓòÉΓòÉΓòÉ 6. Γûá Addtool Utility ΓòÉΓòÉΓòÉ
  233.  
  234.  
  235. ΓòÉΓòÉΓòÉ 7. Introduction ΓòÉΓòÉΓòÉ
  236.  
  237. Use the Addtool utility to add tools to the WorkFrame/2* product from a command 
  238. line rather than using the WorkFrame/2*'s interface. 
  239.  
  240. Adding tools from a command line is a fast way of adding your own tools or ones 
  241. from a vendor. In addition, you can control where the tool appears in the Tools 
  242. pulldown menu of the WorkFrame/2* interface. 
  243.  
  244. Warning: Do not run Addtool while the WorkFrame/2* window is open. 
  245.  
  246. The Addtool utility requires an initialization file. If you are familiar with 
  247. initialization files, you can use the Quick Reference topic to get the 
  248. information you need to create the initialization file. Then you can proceed 
  249. immediately to Step 3 which tells you how to use the addtool command to add the 
  250. tools. 
  251.  
  252. Or, if you would prefer to use a step-by-step approach to creating the 
  253. initialization file, do all the following steps: 
  254.  
  255.  o Step 1 - Create a resource script file that contains information about the 
  256.    tool. 
  257.  
  258.  o Step 2 - Use the OS/2* operating system MAKEINI.EXE tool to compile the 
  259.    resource script file into an initialization file. 
  260.  
  261.  o Step 3 - Use the Addtool utility to add the tools to the WorkFrame/2* 
  262.    product. 
  263.  
  264.  
  265. ΓòÉΓòÉΓòÉ 8. Quick Reference ΓòÉΓòÉΓòÉ
  266.  
  267. If you are familiar with initialization (.INI) files, you can use this panel as 
  268. a reminder of what needs to be specified for the Addtool utility. 
  269.  
  270. The number of applications depends on the number of tools you are adding. The 
  271. first application , TOOLS, has one key called COUNT. And the value of COUNT is 
  272. the number of tools being added. 
  273.  
  274. Each of the other applications is called TOOLSn, where n is an integer from 1 
  275. (one) to the number of tools being added. The TOOLSn applications have the 
  276. following keys 
  277.  
  278.  Key               Description of Value 
  279.  
  280.  TITLE             The title you want to identify the tool. 
  281.  
  282.  PRG               The path and file name of the executable file. 
  283.  
  284.  DIR               The directory to be used as the working directory of the 
  285.                    tool. 
  286.  
  287.  INVOKE            The parameters you want to start the tool with. 
  288.  
  289.  PROMTYPE          Indicates whether or not the user should be prompted when 
  290.                    the tool is started. Zero ('0') means no prompt and one 
  291.                    ('1') causes a prompt to be displayed. 
  292.  
  293.  PROMPT            The text of the prompt. 
  294.  
  295.  PRGMTYPE          The type of program. Must be one of the following values: 
  296.  
  297.     0         Let the header of the tool's executable file control how the tool 
  298.               is run. 
  299.  
  300.     1         Run the program as an OS/2* operating system full-screen program. 
  301.  
  302.     2         Run the program as an OS/2* operating system text-windowed 
  303.               program. 
  304.  
  305.     3         Run the program as a Presentation Manager* program. 
  306.  
  307.     4         Run the program as a DOS full-screen program. 
  308.  
  309.     7         Run the program as a DOS text-windowed program. 
  310.  
  311.     256       Run the program as an OS/2* operating system command file. Let 
  312.               the command processor, CMD.EXE, control how it runs. 
  313.  
  314.     257       Run the program as an OS/2* operating system command file in a 
  315.               full-screen. 
  316.  
  317.     258       Run the program as an OS/2* operating system command file in 
  318.               text-windowed mode. 
  319.  
  320.  SESSION           Indicate whether or not you want the tool to run in the 
  321.                    foreground ('0') or background ('1'). 
  322.  
  323.  If you require more information about the keys and their values, see Step 1. 
  324.  
  325.  
  326. ΓòÉΓòÉΓòÉ 9. Step 1 - Creating a Resource Script File ΓòÉΓòÉΓòÉ
  327.  
  328. This section describes how to specify information about tools in a resource 
  329. script file that can be used as input to the MAKEINI.EXE utility. You can use 
  330. select Copy (under the Services pulldown) to create a file with the contents of 
  331. the example on the right. This file can then be used as a template for your own 
  332. resource script file. 
  333.  
  334. First, identify the number of tools being added with the line: 
  335.  
  336.   "TOOLS"    "COUNT"    "Number_of_tools"
  337.  
  338. Number_of_tools is replaced by a numerical value. In the example, three tools 
  339. are being added so its value is 3. Throughout the rest of the string table, the 
  340. tools are identified by the labels TOOLS1, TOOLS2, and TOOLS3. If more tools 
  341. were being added, their labels would be TOOLS4, TOOLS5 and so on. 
  342.  
  343. Next, specify the characteristics described below for each tool starting with 
  344. the first tool. 
  345.  
  346.  o Specify the title with the line: 
  347.  
  348.          "TOOLS1"   "TITLE"    "Title_of_the_tool"
  349.  
  350.    Title_of_the_tool is replaced by a character string. In the example, it is 
  351.    My Command Window. 
  352.  
  353.    The title identifies the tool in window headings, messages, pulldowns, and 
  354.    list boxes. Therefore, make it meaningful and unique. 
  355.  
  356.    It can be up to 100 characters long. 
  357.  
  358.  o Specify the path and name of the executable file of the tool with the line: 
  359.  
  360.         "TOOLS1"   "PRG"     "Path_and_file_name"
  361.  
  362.    In the example, the executable file name of the tool is 
  363.    d:\my_tools\my_cmd.exe. 
  364.  
  365.    If the path is not fully specified, (for example, .\my_tool.exe) the 
  366.    WorkFrame/2* product searches the path specified in the PATH environment 
  367.    variable when the program is started. 
  368.  
  369.  o Specify the path of the directory you want to use as the current directory 
  370.    when the tool is run: 
  371.  
  372.         "TOOLS1"   "DIR"     "Current_directory"
  373.  
  374.    In the example, the tool will run in the directory d:\temp. 
  375.  
  376.    If you want to use the directory associated with the current project when 
  377.    the tool is invoked, use a single period (.). 
  378.  
  379.  o Specify the parameters to be passed to the tool when it is started: 
  380.  
  381.          "TOOLS1"   "INVOKE"    "Invocation_parameters"
  382.  
  383.    In the example, /k is the invocation parameter. 
  384.  
  385.    You can use substitution variables. 
  386.  
  387.    You can enter up to 100 characters. 
  388.  
  389.  o Specify whether or not a prompt should appear before the tool is run: 
  390.  
  391.         "TOOLS1"   "PROMTYPE"   "Prompt_or_no_prompt"
  392.  
  393.    Prompt_or_no_prompt is replaced by: 
  394.  
  395.     0 (zero)  If no prompt is to be displayed when the tool is run. 
  396.  
  397.     1 (one)   If a prompt is to be displayed. 
  398.  
  399.    Having a prompt lets you enter or change the the invocation parameters just 
  400.    before the tool is run. 
  401.  
  402.  o The text in the prompt is specified with the line: 
  403.  
  404.         "TOOLS1"   "PROMPT"    "Text_of the_prompt"
  405.  
  406.    In the example, the text displayed to prompt the user is 
  407.    Enter in the form /k command eg /kdir . 
  408.  
  409.  o Specify the type of program that the tool is with the line: 
  410.  
  411.         "TOOLS1"   "PRGMTYPE"   "Type_of_program"
  412.    Type_of_program is one of the following values: 
  413.  
  414.     0         Let the header of the tool's executable file control how the tool 
  415.               is run. 
  416.  
  417.     1         Run the program as an OS/2* operating system full-screen program. 
  418.  
  419.     2         Run the program as an OS/2* operating system text-windowed 
  420.               program. 
  421.  
  422.     3         Run the program as a Presentation Manager* program. 
  423.  
  424.     4         Run the program as a DOS full-screen program. 
  425.  
  426.     7         Run the program as a DOS text-windowed program. 
  427.  
  428.     256       Run the program as an OS/2* operating system command file. Let 
  429.               the command processor, CMD.EXE, control how it runs. 
  430.  
  431.     257       Run the program as an OS/2* operating system command file in a 
  432.               full-screen. 
  433.  
  434.     258       Run the program as an OS/2* operating system command file in 
  435.               text-windowed mode. 
  436.  
  437.    Specify 0 (zero) to run the program as specified in the header of its 
  438.    executable file. By specifying another option, you can override the 
  439.    specification in the header of the executable file. You could, for example, 
  440.    start a windowed tool as a full screen tool. Do not start an application 
  441.    that is not a Presentation Manager* program as a Presentation Manager* 
  442.    program or vice versa. If the program is a Presentation Manager* program, 
  443.    specify 0 (zero) or 3. 
  444.  
  445.  o Specify whether you want to run the tool in the foreground or the 
  446.    background: 
  447.  
  448.         "TOOLS1"   "SESSION"   " Session_type"
  449.  
  450.    Session_type is either 0 or 1. 
  451.  
  452.    If you select 0, the tool runs in the foreground. The tool will appear next 
  453.    to Sessions in the Windows pulldown. 
  454.  
  455.    If you select 1, the tool runs as a background process. The tool will appear 
  456.    next to Dialogs in the Windows pulldown. A Monitor window displays showing 
  457.    the standard output. Only select 1 if the program does not interact with the 
  458.    user. 
  459.  
  460.    Note:  If the tool is a Presentation Manager* program, specify 0 to make 
  461.           sure the tool runs in the foreground. 
  462.  
  463.    If the tool is a command file, it is invoked with the /K parameter if it is 
  464.    to run in the foreground. If it is to rund in the background, it is invoked 
  465.    with the /C parameter. 
  466.  
  467.    In the example, the tool is to run in the foreground so 0 is specified. 
  468.  
  469.  Repeat the above steps for each tool being added. When the resource script 
  470.  file is complete, go to Step 2. 
  471.  
  472.  
  473. ΓòÉΓòÉΓòÉ 9.1. Resource Script File - Example ΓòÉΓòÉΓòÉ
  474.  
  475.  
  476. /*****************************************/
  477. /* Example of a Resource Script File     */
  478. /* that can be used by MAKEINI.EXE to    */
  479. /* create an intitialization file.       */
  480. /*****************************************/
  481.  
  482. CODEPAGE 850
  483.  
  484. STRINGTABLE
  485. BEGIN
  486.   ""
  487.   ""
  488.   ""
  489.   ""
  490.   ""
  491.   ""
  492.   ""
  493.   ""
  494.   ""
  495.   ""
  496.  
  497.  
  498.   "TOOLS"      "COUNT"      "3"
  499.  
  500.   "TOOLS1"     "TITLE"       "My Command Window"
  501.   "TOOLS1"     "PRG"         "d:\my_tools\my_cmd.exe"
  502.   "TOOLS1"     "DIR"         "d:\temp"
  503.   "TOOLS1"     "INVOKE"      "/k"
  504.   "TOOLS1"     "PROMTYPE"    "1"
  505.   "TOOLS1"     "PROMPT"      "Enter '/k command' (eg. /k dir)"
  506.   "TOOLS1"     "PRGMTYPE"    "2"
  507.   "TOOLS1"     "SESSION"     "1"
  508.  
  509.   "TOOLS2"     "TITLE"        "Dialog Box Editor"
  510.   "TOOLS2"     "PRG"          "DLGEDIT.EXE"
  511.   "TOOLS2"     "DIR"          "."
  512.   "TOOLS2"     "INVOKE"       "%f"
  513.   "TOOLS2"     "PROMTYPE"     "0"
  514.   "TOOLS2"     "PROMPT"       ""
  515.   "TOOLS2"     "PRGMTYPE"     "3"
  516.   "TOOLS2"     "SESSION"      "0"
  517.  
  518.   "TOOLS3"     "TITLE"        "IPF Compiler"
  519.   "TOOLS3"     "PRG"          "IPFC.EXE"
  520.   "TOOLS3"     "DIR"          "."
  521.   "TOOLS3"     "INVOKE"       "%f"
  522.   "TOOLS3"     "PROMTYPE"     "0"
  523.   "TOOLS3"     "PROMPT"       ""
  524.   "TOOLS3"     "PRGMTYPE"     "0"
  525.   "TOOLS3"     "SESSION"      "1"
  526.  
  527.   ""                   ""                  ""
  528. END
  529.  
  530.  
  531. ΓòÉΓòÉΓòÉ 10. Step 2 - Making An Initialization File ΓòÉΓòÉΓòÉ
  532.  
  533. The next step is to make an initialization file that can be used by the Addtool 
  534. utility. 
  535.  
  536. To make an initialization file, use the OS/2 operating system utility 
  537. MAKEINI.EXE to compile the resource script file (created in Step 1) into an 
  538. initialization file. 
  539.  
  540. For example, 
  541.  
  542.   makeini sample.ini sample.rc
  543.  
  544. creates the initialization file sample.ini from the resource script file 
  545. sample.rc. 
  546.  
  547. If any errors occur while using MAKEINI.EXE with your resource script file, 
  548. correct them and try again. If you need more information, consult the OS/2* 
  549. operating system online reference. 
  550.  
  551. When you initialization file has been successfully created, go to Step 3. 
  552.  
  553.  
  554. ΓòÉΓòÉΓòÉ 11. Step 3 - Using Addtool To Add the Tools ΓòÉΓòÉΓòÉ
  555.  
  556. To add the tools to the WorkFrame/2* product, enter the following command: 
  557.  
  558.   addtool ini_file [ordinal]
  559. where 
  560.  
  561.  ini_file  Is the file name of the initialization file created in step 2. 
  562.  
  563.  ordinal   Indicates where the tools should appear in the Tools pulldown. Use: 
  564.  
  565.     o 0 to put the tools at the top of the list 
  566.  
  567.     o 1 to put them after the first tool already in the list 
  568.  
  569.     o 2 to put them after the second tool already in the list and so on. 
  570.  
  571.            If the ordinal exceeds the number of tools in the Tools pulldown or 
  572.            is unspecified, the new tool is added to to the end of the tools 
  573.            list. 
  574.  
  575.  
  576. ΓòÉΓòÉΓòÉ 11.1. Adding Tools - Example ΓòÉΓòÉΓòÉ
  577.  
  578. Here's an example of commands used to add two tools to the WorkFrame/2* 
  579. product: 
  580.  
  581.    addtool tool_x.ini 2
  582.   addtool tool_y.ini 99
  583.  
  584. Note:  The first command places the tools specified in tool_x.ini after the 
  585.        second item in the Tools pulldown. 
  586.  
  587. The second one places the tools specified in tool_y.ini at the end of the Tools 
  588. pulldown if there are less than 99 items in the pulldown. 
  589.  
  590.  
  591. ΓòÉΓòÉΓòÉ 12. Help for Messages ΓòÉΓòÉΓòÉ
  592.  
  593. For help on a particular message: 
  594.  
  595.   1. Select the plus ('+') symbol beside the Help for Messages heading in the 
  596.      Contents window to display a list of message identifiers. 
  597.  
  598.   2. Select the message identifier corresponding to the that displayed by the 
  599.      Addtool utility to see more information about it. 
  600.  
  601.  
  602. ΓòÉΓòÉΓòÉ 12.1. ADT0001E: Message Help ΓòÉΓòÉΓòÉ
  603.  
  604. Incorrect syntax. 
  605.  
  606. The syntax entered for the Addtool command is not valid. 
  607.  
  608. Recovery 
  609.  
  610. Ensure that the command you enter corresponds to the correct syntax: 
  611.  
  612.    addtool ini_file [ordinal]
  613. where 
  614.  
  615.  ini_file  Is the file name of the initialization file created in step 2. 
  616.  
  617.  ordinal   Indicates where the tools should appear in the Tools pulldown. Use: 
  618.  
  619.     o 0 to put the tools at the top of the list 
  620.  
  621.     o 1 to put them after the first tool already in the list 
  622.  
  623.     o 2 to put them after the second tool already in the list and so on. 
  624.  
  625.            If the ordinal exceeds the number of tools in the Tools pulldown or 
  626.            is unspecified, the new tool is added to to the end of the tools 
  627.            list. 
  628.  
  629.  
  630. ΓòÉΓòÉΓòÉ 12.2. ADT0002E: Message Help ΓòÉΓòÉΓòÉ
  631.  
  632. The ordinal (insertion point) must be numeric. 
  633.  
  634. The ordinal entered on the command line was not numerical. 
  635.  
  636. Recovery 
  637.  
  638. Enter the command again with a numerical ordinal. 
  639.  
  640.  
  641. ΓòÉΓòÉΓòÉ 12.3. ADT0003E: Message Help ΓòÉΓòÉΓòÉ
  642.  
  643. Unable to open input file <name_of_file>. 
  644.  
  645. The Addtool utility could not open the indicated file. 
  646.  
  647. Recovery 
  648.  
  649. Ensure that the file is not being used by another process and try again. 
  650.  
  651.  
  652. ΓòÉΓòÉΓòÉ 12.4. ADT0004E: Message Help ΓòÉΓòÉΓòÉ
  653.  
  654. Tool count missing from profile. 
  655.  
  656. The COUNT key is missing from the initialization file. 
  657.  
  658. Recovery 
  659.  
  660. Ensure that the COUNT key is specified in the initialization file. 
  661.  
  662.  
  663. ΓòÉΓòÉΓòÉ 12.5. ADT0005E: Message Help ΓòÉΓòÉΓòÉ
  664.  
  665. Memory allocation failure. 
  666.  
  667. An error occurred while trying to allocate memory. There may not be sufficient 
  668. memory to complete the task. 
  669.  
  670. Recovery 
  671.  
  672. Close one or more other tasks, and retry the command. 
  673.  
  674.  
  675. ΓòÉΓòÉΓòÉ 12.6. ADT0006E: Message Help ΓòÉΓòÉΓòÉ
  676.  
  677. Too many tools. The new total of new_total would exceed the maximum of 
  678. maximum_number_of_tools. 
  679.  
  680. By adding the tools specified in the file, the new total would be greater than 
  681. that allowed by the WorkFrame/2* product. 
  682.  
  683. Recovery 
  684.  
  685. Remove enough unused tools from the WorkFrame/2* product so that the new 
  686. additions keep the total less than 100. Then add the new tools. 
  687.  
  688.  
  689. ΓòÉΓòÉΓòÉ 12.7. ADT0007E: Message Help ΓòÉΓòÉΓòÉ
  690.  
  691. Addtool utility ending because of errors. 
  692.  
  693. One or more errors occurred before the Addtool utility finished. 
  694.  
  695. Recovery 
  696.  
  697. The errors that occurred were displayed previously to this one. Look up the 
  698. errors in the Contents section and correct the problem. 
  699.  
  700.  
  701. ΓòÉΓòÉΓòÉ 12.8. ADT0008E: Message Help ΓòÉΓòÉΓòÉ
  702.  
  703. Addtool utility finished successfully. 
  704.  
  705. The tools have been added to the WorkFrame/2* product. 
  706.  
  707.  
  708. ΓòÉΓòÉΓòÉ 12.9. ADT0009E: Message Help ΓòÉΓòÉΓòÉ
  709.  
  710. Error loading the WorkFrame/2* profile. 
  711.  
  712. The Addtool utility cannot load the user profile IBMWF.INI from the 
  713. installation directory. One of three conditions has occurred: 
  714.  
  715.   1. The installation directory of the WorkFrame/2* product could not be found 
  716.      by looking in OS2.INI. 
  717.  
  718.      Use the ADDUSER.EXE utility to specify the installation directory in the 
  719.      OS2.INI file. 
  720.   2. The profile failed to open. 
  721.  
  722.      If the file is being held by another process, release it and try again. 
  723.   3. The file has been corrupted. 
  724.  
  725.      In the last situation, you will have to install the WorkFrame/2* again. 
  726.      The environment will be preserved if you specify the same home directory, 
  727.      but you will have to specify your preferences again. 
  728.  
  729.  
  730. ΓòÉΓòÉΓòÉ 12.10. ADT0010E: Message Help ΓòÉΓòÉΓòÉ
  731.  
  732. Error reading WorkFrame/2* profile, OS/2* operating system return code is 
  733. <return_code>. 
  734.  
  735. The WorkFrame/2* initialization cannot read the user profile IBMWF.INI from the 
  736. installation directory. 
  737.  
  738. Recovery 
  739.  
  740. Look up the return code in the OS/2* operating system online reference for more 
  741. information and correct the problem. 
  742.  
  743.  
  744. ΓòÉΓòÉΓòÉ 12.11. ADT0011E: Message Help ΓòÉΓòÉΓòÉ
  745.  
  746. An error occurred while writing the WorkFrame/2* profile, OS/2* operating 
  747. system return code is <return_code>. 
  748.  
  749. The Addtool utility could not update the WorkFrame/2* profile. 
  750.  
  751. Recovery 
  752.  
  753. Look up the return code in the OS/2* operating system online reference for more 
  754. information and correct the problem. 
  755.  
  756.  
  757. ΓòÉΓòÉΓòÉ 12.12. ADT0012E: Message Help ΓòÉΓòÉΓòÉ
  758.  
  759. Profile tool string exceeded 65335 bytes when adding tool <name_of_tool>. 
  760.  
  761. The profile string used to hold the information about the WorkFrame/2*'s tools 
  762. reached its limit when trying to store the information about the indicated 
  763. tool. 
  764.  
  765. Recovery 
  766.  
  767. Delete tools from the WorkFrame/2* product that are no longer needed and try 
  768. again. 
  769.  
  770.  
  771. ΓòÉΓòÉΓòÉ 12.13. ADT0013E: Message Help ΓòÉΓòÉΓòÉ
  772.  
  773. Title is missing for tool <name_of_tool> 
  774.  
  775. The title is missing. 
  776.  
  777. A title must be provided before a tool can be added or changed. Your title is 
  778. missing or blank. 
  779.  
  780. Recovery 
  781.  
  782. Specify the title you want to use for this tool. 
  783.  
  784.  
  785. ΓòÉΓòÉΓòÉ 12.14. ADT0014E: Message Help ΓòÉΓòÉΓòÉ
  786.  
  787. Program name is missing for tool <name_of_tool>. 
  788.  
  789. No program name was specified for the indicated tool. 
  790.  
  791. Recovery 
  792.  
  793. Correct the resource script file so that the tool has a program name. 
  794.  
  795.  
  796. ΓòÉΓòÉΓòÉ 12.15. ADT0015E: Message Help ΓòÉΓòÉΓòÉ
  797.  
  798. Invocation string for tool <name_of_tool> incorrect - string terminated with a 
  799. '%'. 
  800.  
  801. The last character was a % character. It must be followed by another character 
  802. to form a recognized substitution variable. Recognized substitution variables 
  803. are %%, %a, %d, %e, %f, %m, %n, %o, %r, or %z. 
  804.  
  805. Recovery 
  806.  
  807. Add the appropriate character to the end of the string to create a substitution 
  808. variable or delete the % character. 
  809.  
  810.  
  811. ΓòÉΓòÉΓòÉ 12.16. ADT0016E: Message Help ΓòÉΓòÉΓòÉ
  812.  
  813. Invocation string for tool <name_of_tool> incorrect substitution variable found 
  814. within '%a...%z' string. 
  815.  
  816. Only '%%', %d, or '%z' can follow '%a'. 
  817.  
  818. A substitution variable other than %%, %d, or %z was found following a %a. 
  819.  
  820. Recovery 
  821.  
  822. Either remove the substitution variable, change it to a %%, %d, or %z, or add a 
  823. %z ahead of it. 
  824.  
  825.  
  826. ΓòÉΓòÉΓòÉ 12.17. ADT0017E: Message Help ΓòÉΓòÉΓòÉ
  827.  
  828. Invocation string for tool <name_of_tool> incorrect - '%z' found without '%a'. 
  829.  
  830. A %z substitution variable must be preceeded by a matching %a. 
  831.  
  832. Recovery 
  833.  
  834. Make sure the separator character or string that is to be used between the file 
  835. names is placed inbetween %a and %z symbols. Or remove the %z substitution 
  836. variable. 
  837.  
  838.  
  839. ΓòÉΓòÉΓòÉ 12.18. ADT0018E: Message Help ΓòÉΓòÉΓòÉ
  840.  
  841. Invocation string for tool <name_of_tool> incorrect - unrecognized substitution 
  842. variable <variable>. 
  843.  
  844. An unrecognized substitution variable was used. Recognized substitution 
  845. variables are %%, %a, %d, %e, %f, %m, %n, %o, %r, or %z. 
  846.  
  847. Recovery 
  848.  
  849. Change the substitution variable to a recognized substitution variable or 
  850. remove it. 
  851.  
  852.  
  853. ΓòÉΓòÉΓòÉ 12.19. ADT0019E: Message Help ΓòÉΓòÉΓòÉ
  854.  
  855. Invocation string for tool <name_of_tool> incorrect - '%a' found without '%z'. 
  856.  
  857. A %a substitution variable must be followed by a matching %z. 
  858.  
  859. Recovery 
  860.  
  861. Make sure the separator character or string that is to be used between the file 
  862. names is placed inbetween %a and %z symbols. Or remove the %a substitution 
  863. variable. 
  864.  
  865.  
  866. ΓòÉΓòÉΓòÉ 12.20. ADT0020E: Message Help ΓòÉΓòÉΓòÉ
  867.  
  868. Prompt type for tool <name_of_tool> must be 0 (zero)  or 1 (one). 
  869.  
  870. The "PROMPT" entry in the resource script file in neither a zero  ('0') nor a 
  871. one ('1'). 
  872.  
  873.  0 (zero)  If no prompt is to be displayed when the tool is run. 
  874.  
  875.  1 (one)   If a prompt is to be displayed. 
  876.  
  877.  Recovery 
  878.  
  879.  Specify either a 0 or a 1 for "PROMPT" in the resource script file. 
  880.  
  881.  
  882. ΓòÉΓòÉΓòÉ 12.21. ADT0021E: Message Help ΓòÉΓòÉΓòÉ
  883.  
  884. Session type for tool <name_of_tool> must be 0 (zero)  or 1 (one). 
  885.  
  886. The "SESSION" entry in the resource script file in neither a zero  ('0') nor a 
  887. one ('1'). 
  888.  
  889. If you select 0, the tool runs in the foreground. The tool will appear next to 
  890. Sessions in the Windows pulldown. 
  891.  
  892. If you select 1, the tool runs as a background process. The tool will appear 
  893. next to Dialogs in the Windows pulldown. A Monitor window displays showing the 
  894. standard output. Only select 1 if the program does not interact with the user. 
  895.  
  896. Note:  If the tool is a Presentation Manager* program, specify 0 to make sure 
  897.        the tool runs in the foreground. 
  898.  
  899. If the tool is a command file, it is invoked with the /K parameter if it is to 
  900. run in the foreground. If it is to rund in the background, it is invoked with 
  901. the /C parameter. 
  902.  
  903.  Recovery 
  904.  
  905.  Specify either a 0 or a 1 for "SESSION" in the resource script file. 
  906.  
  907.  
  908. ΓòÉΓòÉΓòÉ 12.22. ADT0022E: Message Help ΓòÉΓòÉΓòÉ
  909.  
  910. Program type for tool <name_of_tool> is incorrect. It must be one of the 
  911. following values: 0, 1, 2, 3, 4, 7, 256, 257, or 258. 
  912.  
  913. The value specified in the "PROMTYPE" line in the resource script file is not 
  914. one of the valid values. 
  915.  
  916. Recovery 
  917.  
  918. Correct the value in the "PROMTYPE" line. 
  919.  
  920.  0         Let the header of the tool's executable file control how the tool is 
  921.            run. 
  922.  
  923.  1         Run the program as an OS/2* operating system full-screen program. 
  924.  
  925.  2         Run the program as an OS/2* operating system text-windowed program. 
  926.  
  927.  3         Run the program as a Presentation Manager* program. 
  928.  
  929.  4         Run the program as a DOS full-screen program. 
  930.  
  931.  7         Run the program as a DOS text-windowed program. 
  932.  
  933.  256       Run the program as an OS/2* operating system command file. Let the 
  934.            command processor, CMD.EXE, control how it runs. 
  935.  
  936.  257       Run the program as an OS/2* operating system command file in a 
  937.            full-screen. 
  938.  
  939.  258       Run the program as an OS/2* operating system command file in 
  940.            text-windowed mode. 
  941.  
  942.  
  943. ΓòÉΓòÉΓòÉ 12.23. ADT0023E: Message Help ΓòÉΓòÉΓòÉ
  944.  
  945. Prompt is missing for tool <name_of_tool>. 
  946.  
  947. You have selected to have a prompt provided but have not specified a value for 
  948. the PROMPT key. 
  949.  
  950. Recovery 
  951.  
  952. Enter a value for the PROMPT key. 
  953.  
  954.  
  955. ΓòÉΓòÉΓòÉ 12.24. ADT0028E: Message Help ΓòÉΓòÉΓòÉ
  956.  
  957. Error creating backup of WorkFrame/2* profile, OS/2* operating system return 
  958. code is <return_code>. 
  959.  
  960. The Addtool utility could not make a backup of the WorkFrame/2* profile. 
  961.  
  962. Recovery 
  963.  
  964. Look up the OS/2* operating system return code in the online reference for more 
  965. information and correct the problem. 
  966.  
  967.  
  968. ΓòÉΓòÉΓòÉ 12.25. ADT0029E: Message Help ΓòÉΓòÉΓòÉ
  969.  
  970. The <name_of_string> for tool <name_of_tool> must be numeric. 
  971.  
  972. The value for the indicated string is not numeric. 
  973.  
  974. Recovery 
  975.  
  976. Specify a numeric value for the string. 
  977.  
  978.  
  979. ΓòÉΓòÉΓòÉ 12.26. ADT0030E: Message Help ΓòÉΓòÉΓòÉ
  980.  
  981. Tool count is not numeric. 
  982.  
  983. The value for the COUNT key in the initialization file is not numeric. 
  984.  
  985. Recovery 
  986.  
  987. Specify a numeric value for the COUNT key in the initialization file. 
  988.  
  989.  
  990. ΓòÉΓòÉΓòÉ 12.27. ADT0031E: Message Help ΓòÉΓòÉΓòÉ
  991.  
  992. Tool count is greater than the number of tools allowed. The maximum is 100. 
  993.  
  994. The value for the COUNT key is greater than 100. 
  995.  
  996. Recovery 
  997.  
  998. Ensure that the value is small enough so that the number of tools being added 
  999. plus the number already added does not exceed 100. 
  1000.  
  1001.  
  1002. ΓòÉΓòÉΓòÉ <hidden> Current directory ΓòÉΓòÉΓòÉ
  1003.  
  1004. The current directory is the directory being used by the current project. 
  1005.  
  1006.  
  1007. ΓòÉΓòÉΓòÉ <hidden> Monitor ΓòÉΓòÉΓòÉ
  1008.  
  1009. The Monitor window displays whenever a tool is running in the background or 
  1010. Compile, Build, Link, or Make is selected from the Actions pulldown. Output 
  1011. from the action displays in the list box so you can see what is happening. 
  1012.  
  1013. While the Monitor window list box is being updated, you can only select Stop. 
  1014.  
  1015. Select Stop to halt the tools or action associated with the window. 
  1016.  
  1017. If the action is completed successfully you will hear a high-pitched beep. If 
  1018. the action is not successfully completed, then you will hear a low-pitched 
  1019. beep. 
  1020.  
  1021. Note:  Some tools cannot be interrupted. 
  1022.  
  1023.  The other pushbuttons are only available if: 
  1024.  
  1025.  o The action has stopped on its own. 
  1026.  
  1027.  o You have pressed the Stop pushbutton and the action has stopped. 
  1028.  
  1029.  Once the action has stopped, you can use the: Print, Save, and Cancel 
  1030.  pushbuttons. 
  1031.  
  1032.  You can double-click on a line in the Monitor window list box to edit files if 
  1033.  the dynamic link library of the compiler can parse the message line into a 
  1034.  file name. 
  1035.  
  1036.  Once the editor has started, it can scroll to the line indicated in the 
  1037.  message if: 
  1038.  
  1039.  o The editor supports the communication of error messages and the Send 
  1040.    compiler errors check box is selected. 
  1041.  
  1042.  o The message line matches the form of the error message template specified in 
  1043.    the Compile options dynamic link library. If you are using the default 
  1044.    dynamic link library for the compile options, you can specify the error 
  1045.    message template. If the dynamic link library is designed for a specific 
  1046.    compiler, the error message template may already be built in. 
  1047.  
  1048.  For example, if you are using the OS/2* Enhanced Editor editor and a compiler 
  1049.  which can send the line number in the message, you can use the monitor window 
  1050.  to move around the editing session. Suppose you are compiling a program and 
  1051.  the following messages appear in the Monitor window. 
  1052.  
  1053.   DAVID.C(0184):Missing ';'.
  1054.   DAVID.C(1318):Wrong number of parameters.
  1055.   DAVID.C(3679):Unexpected text identifier.
  1056.  You could start the editing session by clicking on the first line. The OS/2* 
  1057.  Enhanced Editor editor would not only display the file for editing but 
  1058.  automatically move to line 184. After inserting a ';', you could click on the 
  1059.  next message line to move to line 1318 of the file being edited. 
  1060.  
  1061.  The feature works with all text mode editors and some editors based on the 
  1062.  Presentation Manager* program. 
  1063.  
  1064.  For example, when you are fixing errors found by a compiler, just find the 
  1065.  error in the list box and select it to edit the source file. 
  1066.  
  1067.  
  1068. ΓòÉΓòÉΓòÉ <hidden> Substitution Variables ΓòÉΓòÉΓòÉ
  1069.  
  1070. Substitution variables are symbols you can specify in an invocation parameters. 
  1071.  
  1072. The WorkFrame/2* product supports the following substitution variables: 
  1073.  
  1074.  %a...%z   Will be replaced by all the file names selected in the corresponding 
  1075.            listbox. The file names will be separated by the characters 
  1076.            specified between the 'a' and the '%' of the %z substitution 
  1077.            variable. 
  1078.  
  1079.            For example, if the selected files are cat.obj, dog.obj, and 
  1080.            bird.obj, the substitution variable %a+-%z will result in the string 
  1081.  
  1082.                       cat.obj+-dog.obj+-bird.obj
  1083.  
  1084.            The only substitution variable allowed within the %a...%z 
  1085.            substitution variables are %% and %d. 
  1086.  
  1087.  %d        Will be replaced with the directory of the current project. Use this 
  1088.            substitution variable to qualify the name of file as in %d\%f or 
  1089.            %d\%n.%e. 
  1090.  
  1091.  %e        Will be replaced by the extension (without the period) of the first 
  1092.            selected file. 
  1093.  
  1094.  %f        Will be replaced with the first file selected in the corresponding 
  1095.            listbox. 
  1096.  
  1097.            Specifying %f is the same as specifying %n.%e. 
  1098.  
  1099.  %m        Will be replaced by the make file name specified when the project 
  1100.            was created. 
  1101.  
  1102.  %n        Will be replaced by the file name (without an extension) of the 
  1103.            first selected file. 
  1104.  
  1105.  %o        Will be replaced by the target file name specified when the project 
  1106.            was created. 
  1107.  
  1108.  %r        Will be replaced by the run options set for the current project. 
  1109.  
  1110.  %%        Will be replaced by a % symbol. 
  1111.  
  1112.  
  1113. ΓòÉΓòÉΓòÉ 13.   ΓòÉΓòÉΓòÉ
  1114.  
  1115.  
  1116. ΓòÉΓòÉΓòÉ 14. Γûá Library Manager Utility ΓòÉΓòÉΓòÉ
  1117.  
  1118.  
  1119. ΓòÉΓòÉΓòÉ 15. LIBUTIL ΓòÉΓòÉΓòÉ
  1120.  
  1121.  
  1122. ΓòÉΓòÉΓòÉ <hidden> Topics ΓòÉΓòÉΓòÉ
  1123.  
  1124.  What is LIB? 
  1125.  Running LIB 
  1126.  LIB Options 
  1127.  LIB Commands 
  1128.  LIB Prompts 
  1129.  LIB Response File 
  1130.  
  1131.  
  1132. ΓòÉΓòÉΓòÉ <hidden> Command Line Syntax ΓòÉΓòÉΓòÉ
  1133.  
  1134. LIB [options] inlibrary [commands] [[,listfile] [, outlibrary]] [;] 
  1135.  
  1136.  Commas are used to separate commands and options. The semi-colon [;] is used 
  1137. to mark the end of the command line. 
  1138.  
  1139.  
  1140. ΓòÉΓòÉΓòÉ <hidden> What is LIB? ΓòÉΓòÉΓòÉ
  1141.  
  1142. The Library Manager (LIB) lets you create and maintain libraries of object 
  1143. code. A library is an organized collection of object code which contains 
  1144. functions and data that are already assembled or compiled. See What Are 
  1145. Libraries Used For? 
  1146.  
  1147. Once an object file is incorporated into a library, it becomes an object 
  1148. module. 
  1149.  
  1150. Library files are given the extension of .LIB (as in mylib.lib). High 
  1151. Performance File System (HPFS) file names are also supported as long as the 
  1152. file names ends with .LIB (as in mylibraryfile.new.lib). 
  1153.  
  1154. LIB works with standard libraries and OS/2 import libraries. It does not work 
  1155. with Dynamic Link Libraries (DLL). 
  1156.  
  1157. Use LIB to: 
  1158.  
  1159.  o Create a new library 
  1160.  o Add, delete, or replace modules in a library 
  1161.  o Copy object modules in a library to object files 
  1162.  o List the contents of a library 
  1163.  
  1164.  
  1165. ΓòÉΓòÉΓòÉ <hidden> What Are Libraries Used For? ΓòÉΓòÉΓòÉ
  1166.  
  1167. Libraries are used to: 
  1168.  
  1169.  o Support high level languages. Most compilers include libraries to perform 
  1170.    standard operations, such as input/output and floating-point mathematics. 
  1171.  
  1172.    When your program refers to a library routine, the compiler and linker 
  1173.    combine the library routine with your program. 
  1174.  
  1175.  o Perform complex and specialized activities, such as database management or 
  1176.    advanced graphics. You can use your own libraries or specialized libraries 
  1177.    supplied by a vendor. 
  1178.  
  1179.  o Support your own work. If you have created routines that you use with a 
  1180.    variety of programs, you may want to consolidate these routines into a 
  1181.    library. You can then link to one library. 
  1182.  
  1183.  Related Topics 
  1184.  
  1185.  o What is LIB? 
  1186.  
  1187.  
  1188. ΓòÉΓòÉΓòÉ <hidden> Create a New Library ΓòÉΓòÉΓòÉ
  1189.  
  1190. To create a new library file, give the name of the library file you want to 
  1191. create in the <inlibrary> field on the command line (or at the Library name: 
  1192. prompt when using LIB prompts). 
  1193.  
  1194. Note:  A library file is automatically created if the library file name you 
  1195. specify is immediately followed by a command, comma, or semicolon. In this 
  1196. case, the prompt does not appear. 
  1197.  
  1198. If the name you specify for the new library file already exists, LIB assumes 
  1199. that you want to modify the existing file. 
  1200.  
  1201. When you give the name of a file that does not currently exist, LIB displays 
  1202. the following prompt: 
  1203.  
  1204. Library does not exist.  Create library? (y or n)
  1205.  
  1206. Type y to create the file; type n to terminate the LIB run. If you specified an 
  1207. extension other than .LIB, LIB will try to append the .LIB extension to the 
  1208. entire file name. If a library name is not entered LIB will prompt you with the 
  1209. following: 
  1210.  
  1211. Library name:
  1212.  
  1213. Other Library Functions 
  1214.  
  1215.  o Add, delete, or replace modules in a library 
  1216.  o Copy object modules in a library to object files 
  1217.  o List contents of a library 
  1218.  
  1219.  Related Topics 
  1220.  
  1221.  o What Are Libraries Used For? 
  1222.  
  1223.  
  1224. ΓòÉΓòÉΓòÉ <hidden> Modifying a Library ΓòÉΓòÉΓòÉ
  1225.  
  1226. You can use LIB to alter the contents of any object code library. For example, 
  1227. if you work with high level language libraries, you may want to replace a 
  1228. standard routine with your own version of the routine. You may also want to add 
  1229. a new routine to the standard library so that your routine is available along 
  1230. with the standard routines. 
  1231.  
  1232. To modify an existing library file, give the name of the library file you want 
  1233. to modify in the <inlibrary> field of the command line (or at the Library name: 
  1234. prompt when using LIB prompts). 
  1235.  
  1236. In the <command> field, enter one or more commands to add, delete, or replace 
  1237. modules in the input library. Each command consists of a command character 
  1238. immediately followed by the name of the module or object file. Note that the 
  1239. Add command can be used to combine libraries as well as to add object files to 
  1240. a library. See: 
  1241.  
  1242.  Add Command (+) 
  1243.  Delete Command (-) 
  1244.  Replace Command (-+) 
  1245.  
  1246.  LIB creates a backup file of the library being modified if it already exists. 
  1247.  This backup file has the same name as the original library with .IBM as the 
  1248.  extension name. 
  1249.  
  1250.  Other Library Functions 
  1251.  
  1252.  o Create a new library 
  1253.  o Copy/move object modules in a library to object files 
  1254.  o List contents of a library 
  1255.  
  1256.  Related Topics 
  1257.  
  1258.  o What Are Libraries Used For? 
  1259.  
  1260.  
  1261. ΓòÉΓòÉΓòÉ <hidden> Copying Object Modules to Object Files ΓòÉΓòÉΓòÉ
  1262.  
  1263. To copy a module from a library file to an object file, give the name of the 
  1264. library file in the <inlibrary> field on the command line (or at the Library 
  1265. name: prompt when using LIB prompts). 
  1266.  
  1267. The <command> field on the command line allows you to move or copy modules. 
  1268.  
  1269.  Command   Action 
  1270.  
  1271.  copy (*)  LIB copies the module to an object file and retains the module in 
  1272.            the library. 
  1273.  
  1274.  move (-*) LIB copies the module to an object file and deletes the module from 
  1275.            the library. 
  1276.  
  1277.  Other Library Functions 
  1278.  
  1279.  o Create a new library 
  1280.  o Add, delete, or replace modules in a library 
  1281.  o List contents of a library 
  1282.  
  1283.  Related Topics 
  1284.  
  1285.  o What Are Libraries Used For? 
  1286.  
  1287.  
  1288. ΓòÉΓòÉΓòÉ <hidden> Listing the Current Contents of a Library ΓòÉΓòÉΓòÉ
  1289.  
  1290. Listings give you the exact names of modules and public symbols, allowing you 
  1291. to inspect the contents within a library. 
  1292.  
  1293. To generate a listing file, enter the following on the command line (or at the 
  1294. appropriate LIB prompt): 
  1295.  
  1296.  o The name of the library file in the <inlibrary> field 
  1297.  
  1298.  o The name of the listing file in the <listfile> field 
  1299.  
  1300.  When generating a listing file, the amount of detail can be varied. The level 
  1301.  of detail is specified with the /Listlevel: n option, with three different 
  1302.  levels being available. 
  1303.  
  1304.  Level 1 is the default for Listlevel. It is the fastest to generate and 
  1305.  contains the least amount of information. All modules are listed in order of 
  1306.  occurrence. For each module, the level 1 option: 
  1307.  
  1308.   1. Shows the relative position and size of each module. 
  1309.  
  1310.   2. Lists all the public symbols defined in the module. 
  1311.  
  1312.   3. Lists all external symbols which must be resolved at link time. 
  1313.  
  1314.  Level 1 Example 
  1315.  
  1316.  Level 2 contains all the information of level 1. In addition, for each 
  1317.  external symbol, level 2 shows which module in the library contains the 
  1318.  required public symbols for resolving at link time. This can be overridden if 
  1319.  a module is linked to another module that already contains the symbol. 
  1320.  
  1321.  Level 2 Example 
  1322.  
  1323.  Level 3 contains all the information of level 2. In addition, Level 3 displays 
  1324.  the technical characteristics of the library. This option also contains a dump 
  1325.  of the extended dictionary. This is useful to determine which modules will be 
  1326.  implicitly linked in whenever a particular module is linked in. 
  1327.  
  1328.  Level 3 Example 
  1329.  
  1330.  Sample Cross Reference Listing 
  1331.  
  1332.   LIB /LISTLEVEL:2 MYLIB, MYLIB.LST;
  1333.  
  1334.  The command above directs LIB to place a listing of the contents of MYLIB.LIB 
  1335.  into the file LISTING.LST No path specification is given for LISTING.LST. By 
  1336.  default, the file created is put in the current directory. 
  1337.  
  1338.  Other Library Functions 
  1339.  
  1340.  o Create a new library 
  1341.  o Add, delete, or replace modules in a library 
  1342.  o Copy object modules in a library to object files 
  1343.  
  1344.  Related Topics 
  1345.  
  1346.  o What Are Libraries Used For? 
  1347.  
  1348.  o What Are Libraries Used For? 
  1349.  
  1350.  
  1351. ΓòÉΓòÉΓòÉ <hidden> Running LIB ΓòÉΓòÉΓòÉ
  1352.  
  1353. Run LIB by typing LIB  at the operating system prompt. See Syntax. 
  1354.  
  1355. Input can be supplied by one of three methods: 
  1356.  
  1357.   1. Enter the input directly on the command line. 
  1358.   2. Respond to prompts. 
  1359.   3. Put your input in a text file called a response file and enter the file 
  1360.      name on the command line. 
  1361.  
  1362.  Note:  You can press CTRL+C or CTRL+BREAK at any time during a LIB run to 
  1363.  return to the operating system. Interrupting LIB before completion restores 
  1364.  the library from the backup. 
  1365.  
  1366.  
  1367. ΓòÉΓòÉΓòÉ <hidden> Output Library ΓòÉΓòÉΓòÉ
  1368.  
  1369. If you specify a file in <outlibrary>, LIB creates a new output file with the 
  1370. modifications and leaves your input file intact. Otherwise, LIB replaces your 
  1371. input file with the modified file. In the latter case, a backup of your 
  1372. original input file is stored in the current directory with the file name 
  1373. extension .IBM. 
  1374.  
  1375.  
  1376. ΓòÉΓòÉΓòÉ <hidden> Using the Command Line ΓòÉΓòÉΓòÉ
  1377.  
  1378. You can specify all the input LIB needs on the command line. See Command Line 
  1379. Syntax 
  1380.  
  1381.  <inlibrary>      The input library to be modified. 
  1382.  
  1383.  <options>        Options that affect the way LIB runs. 
  1384.  
  1385.  <commands>       Commands used to add, delete, replace, copy, and move modules 
  1386.                   within the library. 
  1387.  
  1388.  <listfile>       The name for a listing file. If you don't specify a name, no 
  1389.                   file is created. 
  1390.  
  1391.  <outlibrary>     The output library created from the input library. If you 
  1392.                   don't specify an output library, your input library is 
  1393.                   replaced with the modified version (see below). 
  1394.  
  1395.  Note: 
  1396.  
  1397.  o When started, LIB makes a backup copy of the original library in case it is 
  1398.    interrupted or a mistake is made. Make sure you have enough disk space for 
  1399.    both your original library and the modified copy. 
  1400.  
  1401.  o The library must end with the extension .LIB. If an extension is not 
  1402.    specified the default extension, .LIB, will be appended. HPFS file names are 
  1403.    supported. Hence, MYLIBRARYNAME.NEW.LIB is still a valid library.  Note that 
  1404.    this implies that MYLIBRARYNAME.NEW refers to MYLIBRARYNAME.NEW.LIB. 
  1405.  
  1406.  o If you enter an input library name and follow it immediately with a 
  1407.    semicolon (;), LIB performs a consistency check on the library and takes no 
  1408.    other action. 
  1409.  
  1410.  o If you want to enter more commands than can be conveniently entered on the 
  1411.    Command Line, see  Multiple Command Lines. 
  1412.  
  1413.  
  1414. ΓòÉΓòÉΓòÉ <hidden> Multiple Command Lines ΓòÉΓòÉΓòÉ
  1415.  
  1416. To enter more commands than can be conveniently entered on one line, type an 
  1417. ampersand (&) at the end of the line and press ENTER to extend the command 
  1418. field to a new line. The ampersand can be used on the command line, after LIB 
  1419. prompts, and in response files. 
  1420.  
  1421.  
  1422. ΓòÉΓòÉΓòÉ <hidden> Using LIB Prompts ΓòÉΓòÉΓòÉ
  1423.  
  1424. If you don't provide input to LIB on the command line, LIB prompts you for the 
  1425. information it needs by displaying the following messages, one at a time: 
  1426.  
  1427.  Prompt               Enter 
  1428.  
  1429.  Library name 
  1430.                     Name of the input library to be modified 
  1431.  
  1432.  Operations 
  1433.                     Commands to modify the library 
  1434.  
  1435.  List file 
  1436.                     Name for a listing file 
  1437.  
  1438.  Output library 
  1439.                     Name of the output library to be created from the input 
  1440.                     library 
  1441.  
  1442.  Enter the same information that you would enter when using the LIB command 
  1443.  line. 
  1444.  
  1445.  Notes 
  1446.  
  1447.  o LIB waits for you to respond to each prompt before displaying the next 
  1448.    prompt. If you notice that you have entered an incorrect response to a 
  1449.    previous prompt, press CTRL+C or CTRL+BREAK to exit LIB and begin again. 
  1450.  o A file name must be entered at the Library name: prompt. To choose a default 
  1451.    response for any of the other prompts, press ENTER. To choose default 
  1452.    responses for all remaining prompts, type a semicolon (;) and press ENTER. 
  1453.  
  1454.  Related Topics 
  1455.  
  1456.  Default Responses to Prompts 
  1457.  
  1458.  
  1459. ΓòÉΓòÉΓòÉ <hidden> Default Responses to Prompts ΓòÉΓòÉΓòÉ
  1460.  
  1461.  Prompt Default Action 
  1462.  
  1463.  Operations: 
  1464.       No commands; the input library is unchanged. 
  1465.  
  1466.  List file: 
  1467.       No listing file is created. 
  1468.  
  1469.  Output library: 
  1470.       LIB modifies the input library. 
  1471.  
  1472.  LIB prompts 
  1473.  
  1474.  
  1475. ΓòÉΓòÉΓòÉ <hidden> Using a LIB Response File ΓòÉΓòÉΓòÉ
  1476.  
  1477. To provide input to LIB with a response file, type: 
  1478.  
  1479. LIB @responsefile
  1480.  
  1481. The field < responsefile > is the name of a file containing the same 
  1482. information that can be specified on the command line. 
  1483.  
  1484. In a sense, a response file extends the command line to include everything in 
  1485. the response file. To split input to LIB between the command line and a 
  1486. response file, put part of your input on the command line and specify a 
  1487. response file (preceding the response file name with the at sign (@)). The 
  1488. response file name can be any valid OS/2 file. To use special characters such 
  1489. as a space or the @ symbol, the filename must be enclosed in quotes. 
  1490.  
  1491. LIB responds to input you place in a response file just as it does to input you 
  1492. enter on a command line or after a prompt. Using a newline character in the 
  1493. response file is the equivalent of pressing the ENTER key after a LIB prompt. 
  1494.  
  1495. A response file uses one text line for each prompt. To extend a LIB command to 
  1496. multiple lines, end each line except the last with an ampersand (&). Responses 
  1497. must appear in the same order as the prompts. 
  1498.  
  1499. Use a response file for: 
  1500.  
  1501.  o Complex and long commands you type frequently 
  1502.  
  1503.  o Strings of commands that exceed the limit for command line length 
  1504.  
  1505.  Response file example 
  1506.  
  1507.  Related Topics 
  1508.  
  1509.  o LIB Options 
  1510.  o LIB Commands 
  1511.  o LIB Prompts 
  1512.  
  1513.  
  1514. ΓòÉΓòÉΓòÉ <hidden> Sample Response File ΓòÉΓòÉΓòÉ
  1515.  
  1516. Consider a response file called RESPONSE: 
  1517.  
  1518. DDE4AST
  1519. +SIMON-LOOK+LOOK &
  1520. *MALLOC
  1521. DDE4AST.LST
  1522.  
  1523. To use this response file, type the following at the operating system prompt: 
  1524.  
  1525. LIB @RESPONSE
  1526.  
  1527. This is equivalent to the following responses to LIB prompts: 
  1528.  
  1529. Library name: DDE4AST
  1530. Operations: +SIMON-LOOK+LOOK &
  1531. Operations: *MALLOC
  1532. List file: DDE4AST.LST
  1533. Output library:
  1534.  
  1535. Note that the ampersand character (&) is used in a response file in the same 
  1536. way it is used for LIB prompts; that is, the ampersand lets you enter commands 
  1537. on multiple lines. 
  1538.  
  1539. LIB does the following: 
  1540.  
  1541.  o Deletes the module LOOK from the library DDE4AST.LIB 
  1542.  o Copies the module MALLOC into an object file named MALLOC.OBJ 
  1543.  o Appends the object files SIMON.OBJ and LOOK.OBJ as the last two modules in 
  1544.    the library 
  1545.  o Creates a listing file named DDE4AST.LST 
  1546.  
  1547.  LIB Response File 
  1548.  
  1549.  
  1550. ΓòÉΓòÉΓòÉ <hidden> LIB Options ΓòÉΓòÉΓòÉ
  1551.  
  1552. Usage Notes: 
  1553.  
  1554.  o Option characters are not case sensitive; /H and /h are equivalent. 
  1555.  o The characters in brackets can be omitted; /H and /HELP are equivalent. 
  1556.  o Unless otherwise specified, most options and commands need only the first 
  1557.    letter of their names to be used. 
  1558.  
  1559.  The following is a summary of LIB options: 
  1560.  
  1561.  Option                  Action 
  1562.  
  1563.  /? or ? or /H[ELP]      Display Help 
  1564.  
  1565.  /I[GNORECASE]           Turn Case Sensitivity Off 
  1566.  
  1567.  /NOE[XTDICTIONARY]      Disable Generation of Extended Dictionary 
  1568.  
  1569.  /NOI[GNORECASE]         Turn Case Sensitivity On 
  1570.  
  1571.  /NOL[OGO]               Suppress LIB Banner 
  1572.  
  1573.  /Q[UIET]                Suppress LIB Banner 
  1574.  
  1575.  /P[AGESIZE]             Set Library Page Size 
  1576.  
  1577.  /L[ISTLEVEL] :n         List Current Contents of Library 
  1578.  
  1579.  Related Topics 
  1580.  
  1581.  o LIB Commands 
  1582.  o LIB Prompts 
  1583.  o LIB Response File 
  1584.  
  1585.  
  1586. ΓòÉΓòÉΓòÉ <hidden> /I Option ΓòÉΓòÉΓòÉ
  1587.  
  1588. Turn Case Sensitivity Off (/I) 
  1589.  
  1590. Syntax:  /I[GNORECASE] 
  1591.  
  1592. Purpose:  Turns off case sensitivity for symbols 
  1593.  
  1594. By default, case sensitivity is off. Use this option when you are combining a 
  1595. library that was created with  case sensitivity on (using the /NOI option) with 
  1596. others that are not case sensitive.  The resulting library is not case 
  1597. sensitive. 
  1598.  
  1599.  
  1600. ΓòÉΓòÉΓòÉ <hidden> /NOE Option ΓòÉΓòÉΓòÉ
  1601.  
  1602. Disable Generation of Extended Dictionary (/NOE) 
  1603.  
  1604. Syntax:  /NOE[XTDICTIONARY] 
  1605.  
  1606. Purpose: Disables generation of extended dictionary 
  1607.  
  1608. The extended dictionary is an optional part of the library that increases 
  1609. linking speed. However, using an extended dictionary requires more memory. The 
  1610. space reserved for the extended dictionary is limited to 64K, no more can be 
  1611. allocated. If LIB reports an out-of-memory error, you may want to use this 
  1612. option. As an alternative, you can split large libraries into smaller libraries 
  1613. to use in linking. 
  1614.  
  1615.  
  1616. ΓòÉΓòÉΓòÉ <hidden> /NOI Option ΓòÉΓòÉΓòÉ
  1617.  
  1618. Turn Case Sensitivity On (/NOI) 
  1619.  
  1620. Syntax:  /NOI[GNORECASE] 
  1621.  
  1622. Purpose:  Turns on case sensitivity 
  1623.  
  1624. By default, case sensitivity is off (/I option). Using this option allows 
  1625. symbols that differ only in case, such as Sine and SINE, to be included as 
  1626. separate symbols in the same library. 
  1627.  
  1628. Note that when you create a library with the /NOI option, LIB marks the library 
  1629. internally to indicate that /NOI is in effect. If you combine multiple 
  1630. libraries, and any one of them is marked /NOI, then the output library is 
  1631. marked /NOI. 
  1632.  
  1633.  
  1634. ΓòÉΓòÉΓòÉ <hidden> /P Option ΓòÉΓòÉΓòÉ
  1635.  
  1636. Set Library Page Size (/P) 
  1637.  
  1638. Syntax:  /P[AGESIZE]: n 
  1639.  
  1640. Purpose:  Sets library page size 
  1641.  
  1642. This option specifies the library page size of a new library or changes that of 
  1643. an existing library. The new page size <n> must be an integer value 
  1644. representing a power of 2 between the values 16 and 32,768. 
  1645.  
  1646. A library's page size affects the alignment of modules stored in the library. 
  1647. Modules are always aligned to start at a position that is a multiple of the 
  1648. page size (in bytes) from the beginning of the file. The default page size for 
  1649. a new library is 16 bytes. For an existing library, the default is its current 
  1650. page size. 
  1651.  
  1652. Because of LIB's indexing technique, the larger the page size, the more modules 
  1653. a library can hold. Each module requires an average of n/2 bytes of storage 
  1654. space. Therefore, you should use a small page size unless you need to put a 
  1655. very large number of modules in a library. 
  1656.  
  1657. Another consequence of LIB's indexing technique is that the page size limits 
  1658. the size of the library file to n * 65,536. For example, the option /P:16 
  1659. limits the size to 1 megabyte (16 * 65,536 bytes). 
  1660.  
  1661.  
  1662. ΓòÉΓòÉΓòÉ <hidden> / ? or ? or /H Option ΓòÉΓòÉΓòÉ
  1663.  
  1664. Display Help 
  1665.  
  1666.  Syntax:   /H[ELP] 
  1667.            or 
  1668.            /? 
  1669.            or 
  1670.            ? 
  1671.  
  1672.  Purpose:  Displays help on LIB 
  1673.  
  1674.  A brief summary of LIB syntax is displayed. 
  1675.  
  1676.  
  1677. ΓòÉΓòÉΓòÉ <hidden> /NOL or /Q Option ΓòÉΓòÉΓòÉ
  1678.  
  1679. Suppress LIB Banner 
  1680.  
  1681. Syntax:  /NOL[OGO] or /Q[UIET] 
  1682.  
  1683. Purpose:  Suppresses the LIB copyright notice. 
  1684.  
  1685. This option suppresses the banner message when LIB is started. It can be used 
  1686. in batch files. 
  1687.  
  1688.  
  1689. ΓòÉΓòÉΓòÉ <hidden> LIB Commands ΓòÉΓòÉΓòÉ
  1690.  
  1691. LIB commands are used to manipulate modules in a library. A single LIB run uses 
  1692. multiple commands in any order. 
  1693.  
  1694. Each command consists of a one- or two-character command symbol immediately 
  1695. followed by the name of the module or file that is the subject of the command. 
  1696. For example, 
  1697.  
  1698. +SORT.OBJ
  1699.  
  1700. adds the SORT.OBJ object file to a library as SORT. 
  1701.  
  1702.  Command   Action 
  1703.  
  1704.  [+]  Adds an object file or library to a library 
  1705.  
  1706.  -    Deletes a module from a library 
  1707.  
  1708.  -+   Replaces a module in a library 
  1709.  
  1710.  *    Copies a module from a library to an object file 
  1711.  
  1712.  -*   Moves a module (copies the module and then deletes it) 
  1713.  
  1714.  Notes 
  1715.  
  1716.  o If you want to enter more commands than can be conveniently entered on one 
  1717.    line, type an ampersand (&) and press ENTER at the end of the line. This 
  1718.    extends the command field to the next line. See Multiple Command Lines 
  1719.  
  1720.  o When processing commands, LIB processes all copy commands first. LIB then 
  1721.    processes the deletions and processes the additions last. 
  1722.  
  1723.  o LIB never makes changes to your input library while it runs; it copies the 
  1724.    library and makes changes to that copy. However, if you don't specify an 
  1725.    output library, LIB overwrites the input library with the modified copy at 
  1726.    the end of normal processing. See: Using the LIB Command Line. 
  1727.  
  1728.  Related Topics 
  1729.  
  1730.  o LIB Options 
  1731.  o LIB Prompts 
  1732.  o LIB Response File 
  1733.  
  1734.  
  1735. ΓòÉΓòÉΓòÉ <hidden> Add Command (+) ΓòÉΓòÉΓòÉ
  1736.  
  1737. Use the add command to add an object module or library to a library. The add 
  1738. command is issued using the plus (+) sign or leaving a blank ( ) space. 
  1739.  
  1740. Adding an Object Module to a Library 
  1741.  
  1742. Type the name of the object file to be added immediately after the plus sign. 
  1743. The .OBJ extension may be omitted. 
  1744.  
  1745. LIB uses the base name of the object file as the name of the object module in 
  1746. the library. For example, if the object file B:\CURSOR.OBJ is added to a 
  1747. library file, the name of the corresponding object module is CURSOR. 
  1748.  
  1749. Object modules are always added to the end of a library file. 
  1750.  
  1751. Combining Two Libraries 
  1752.  
  1753. Give the name of the library file to be added, including the .LIB extension, 
  1754. immediately after the plus sign (+). A copy of the contents of that library is 
  1755. added to the library file being modified. If both libraries contain a module 
  1756. with the same name, LIB ignores the second module with that name. 
  1757.  
  1758. LIB adds the modules of the library to the end of the library being changed. 
  1759. Note that the added library still exists as an independent library because LIB 
  1760. copies the modules without deleting them. 
  1761.  
  1762. Add Command Examples 
  1763.  
  1764.  
  1765. ΓòÉΓòÉΓòÉ <hidden> Add Command: Examples ΓòÉΓòÉΓòÉ
  1766.  
  1767. LIB MAINLIB +MALLOC;
  1768.  
  1769. The command above adds the file MALLOC.OBJ to the library MAINLIB.LIB. 
  1770.  
  1771. LIB MATH +TRIG.LIB;
  1772.  
  1773. The command above adds the contents of the library TRIG.LIB to the library 
  1774. MATH.LIB. The library TRIG.LIB is unchanged after this command is executed. 
  1775.  
  1776.  
  1777. ΓòÉΓòÉΓòÉ <hidden> Delete Command (-) ΓòÉΓòÉΓòÉ
  1778.  
  1779. Use the delete command (-) to delete an object module from a library. After the 
  1780. minus sign (-), give the name of the module to be deleted. Module names do not 
  1781. have path names or extensions. 
  1782.  
  1783. Delete command example 
  1784.  
  1785.  
  1786. ΓòÉΓòÉΓòÉ <hidden> Delete Comand: Example ΓòÉΓòÉΓòÉ
  1787.  
  1788. LIB MAINLIB -MALLOC;
  1789.  
  1790. The command above deletes the module MALLOC from the library MAINLIB.LIB. 
  1791.  
  1792.  
  1793. ΓòÉΓòÉΓòÉ <hidden> Replace Command (-+) ΓòÉΓòÉΓòÉ
  1794.  
  1795. Use the replace command (-+) to replace a module in a library. Following the 
  1796. symbol, give the name of the module to be replaced. 
  1797.  
  1798. To replace a module, LIB performs the following steps: 
  1799.  
  1800.   1. Deletes the existing module 
  1801.  
  1802.   2. Searches the current directory for the .OBJ file with the same file name 
  1803.      as the deleted module 
  1804.  
  1805.   3. Appends to the library a copy of the object file with the original module 
  1806.      name 
  1807.  
  1808.  Replace command example 
  1809.  
  1810.  
  1811. ΓòÉΓòÉΓòÉ <hidden> Replace Command: Example ΓòÉΓòÉΓòÉ
  1812.  
  1813. LIB MAINLIB -+MALLOC;
  1814.  
  1815. The command above replaces the module MALLOC in the MAINLIB.LIB library with 
  1816. the contents of MALLOC.OBJ from the current directory. The file MALLOC.OBJ in 
  1817. the current directory is not altered. 
  1818.  
  1819.  
  1820. ΓòÉΓòÉΓòÉ <hidden> Copy Command (*) ΓòÉΓòÉΓòÉ
  1821.  
  1822. Use the copy command (*) to copy a module from the library into an object file 
  1823. of the same name. The module remains in the library. 
  1824.  
  1825. When LIB copies the module to an object file, it adds the .OBJ extension to the 
  1826. module name and places the file in the current directory. If a file with this 
  1827. name already exists, LIB overwrites the existing .OBJ file. 
  1828.  
  1829. Copy command example 
  1830.  
  1831.  
  1832. ΓòÉΓòÉΓòÉ <hidden> Copy Command: Example ΓòÉΓòÉΓòÉ
  1833.  
  1834. LIB MAINLIB *MALLOC;
  1835.  
  1836. The command above copies the module MALLOC from the MAINLIB.LIB library to a 
  1837. file called MALLOC.OBJ in the current directory. The module MALLOC in 
  1838. MAINLIB.LIB is not altered. 
  1839.  
  1840.  
  1841. ΓòÉΓòÉΓòÉ <hidden> Move Command (-*) ΓòÉΓòÉΓòÉ
  1842.  
  1843. Use the move command (-*) to copy an object module from the library file to an 
  1844. object file. The object module is then deleted from the library file. This 
  1845. operation is equivalent to copying the module to an object file, then deleting 
  1846. the module from the library. 
  1847.  
  1848. Move command example 
  1849.  
  1850.  
  1851. ΓòÉΓòÉΓòÉ <hidden> Move Command: Example ΓòÉΓòÉΓòÉ
  1852.  
  1853. LIB MAINLIB -*START;
  1854.  
  1855. The command above moves the module START from the MAINLIB.LIB library to a file 
  1856. called START.OBJ in the current directory.  Upon completion of this process, 
  1857. MAINLIB.LIB no longer contains the module START. 
  1858.  
  1859.  
  1860. ΓòÉΓòÉΓòÉ <hidden> Object File ΓòÉΓòÉΓòÉ
  1861.  
  1862. An object file is produced by a compiler or assembler from one or more source 
  1863. files. An object file has an extension of .OBJ. (as in myproj.obj).  In LIB, 
  1864. HPFS file names are also supported as long as the file name ends with .OBJ (as 
  1865. in myobjectfile.new.obj). 
  1866.  
  1867.  
  1868. ΓòÉΓòÉΓòÉ <hidden> Object Module ΓòÉΓòÉΓòÉ
  1869.  
  1870. The object module is a self-contained unit within a library of precompiled or 
  1871. preassembled routines. When individual object files are combined into a single 
  1872. library file, they become object modules. 
  1873.  
  1874. In LIB, an object module is referred to by its name, without a file extension. 
  1875. For example, assume that the object file START.OBJ is inserted into a library. 
  1876. It then becomes an object module and is simply referred to as START. 
  1877.  
  1878.  
  1879. ΓòÉΓòÉΓòÉ <hidden> Listing Level 1 Example ΓòÉΓòÉΓòÉ
  1880.  
  1881. The syntax used to generate a listing file with level 1 option is: 
  1882.  
  1883. LIB /L:1 ALLOC, ALLOC1.LST
  1884.  
  1885. This command generates the following listing file called ALLOC1.LST: 
  1886.  
  1887. IBM (R) Library Manager Version 1.00
  1888. Copyright (C) IBM Corporation 1991.  All rights reserved.
  1889.  
  1890. Library name : D:\TEMP\ALLOC.LIB
  1891.  
  1892. Listing detail level : 1
  1893.  
  1894. 00000:malloc (OFFSET:0x00000010, SIZE:0x000004ca): 
  1895.  
  1896.  - Public Definitions:
  1897.      malloc
  1898.  
  1899.  - External Definitions:
  1900.      DosAllocMem                           _ilog2
  1901.      _critlib_except                       _DosSelToFlat
  1902.      _DosFlatToSel
  1903.  
  1904. 00001:calloc (OFFSET:0x000004e0, SIZE:0x000001d1):
  1905.  - Public Definitions:
  1906.      calloc
  1907.  
  1908.  - External Definitions:
  1909.      malloc                                _critlib_except
  1910.      _DosSelToFlat                         _DosFlatToSel
  1911.  
  1912.  
  1913. 00002:free (OFFSET:0x000006c0, SIZE:0x0000021a):
  1914.  - Public Definitions:
  1915.      free
  1916.  
  1917.  - External Definitions:
  1918.      DosFreeMem                            _critlib_except
  1919.      _DosSelToFlat                         _DosFlatToSel
  1920.      _pBucketArr
  1921.  
  1922.  
  1923. 00003:realloc (OFFSET:0x000008e0, SIZE:0x00000428):
  1924.  - Public Definitions:
  1925.      realloc
  1926.  
  1927.  - External Definitions:
  1928.      _ilog2                                free
  1929.      malloc                                _critlib_except
  1930.      _DosSelToFlat                         _DosFlatToSel
  1931.      _pBucketArr
  1932.  
  1933.  
  1934. 00004:heapmin (OFFSET:0x00000d10, SIZE:0x00000342):
  1935.  - Public Definitions:
  1936.      _heapmin
  1937.  
  1938.  - External Definitions:
  1939.      DosFreeMem                            _critlib_except
  1940.      _DosSelToFlat                         _DosFlatToSel
  1941.      _pBucketArr
  1942.  
  1943.  
  1944. ΓòÉΓòÉΓòÉ <hidden> Listing Level 2 Example ΓòÉΓòÉΓòÉ
  1945.  
  1946. The syntax used to generate a listing file with level 2 option is: 
  1947.  
  1948. LIB /L:2 ALLOC, ALLOC2.LST
  1949.  
  1950. This command generates the following listing file called ALLOC2.LST: 
  1951.  
  1952. IBM (R) Library Manager Version 1.00
  1953. Copyright (C) IBM Corporation 1991.  All rights reserved.
  1954.  
  1955. Library name : D:\TEMP\ALLOC.LIB
  1956.  
  1957. Listing detail level : 2
  1958.  
  1959. 00000:malloc(OFFSET:0x00000010,SIZE:0x000004ca): 
  1960.  
  1961.  - Public Definitions:
  1962.      malloc
  1963.  
  1964.  - External Definitions:
  1965.      DosAllocMem
  1966.      _ilog2
  1967.      _critlib_except
  1968.      _DosSelToFlat
  1969.      _DosFlatToSel
  1970.  
  1971.  
  1972. 00001:calloc (OFFSET:0x000004e0, SIZE:0x000001d1):
  1973.  - Public Definitions:
  1974.      calloc
  1975.  
  1976.   - External Definitions: 
  1977.     malloc               <- 00000:malloc 
  1978.     _critlib_except 
  1979.     _DosSelToFlat 
  1980.     _DosFlatToSel 
  1981.  
  1982.  
  1983.   00002:free (OFFSET:0x000006c0, SIZE:0x0000021a):
  1984.    - Public Definitions:
  1985.        free
  1986.  
  1987.    - External Definitions:
  1988.        DosFreeMem
  1989.        _critlib_except
  1990.        _DosSelToFlat
  1991.        _DosFlatToSel
  1992.        _pBucketArr
  1993.  
  1994.  
  1995.   00003:realloc (OFFSET:0x000008e0, SIZE:0x00000428):
  1996.    - Public Definitions:
  1997.        realloc
  1998.  
  1999.    - External Definitions:
  2000.        _ilog2
  2001.        free                               <- 00002:free
  2002.        malloc                             <- 00000:malloc
  2003.        _critlib_except
  2004.        _DosSelToFlat
  2005.        _DosFlatToSel
  2006.        _pBucketArr
  2007.  
  2008.  
  2009.   00004:heapmin (OFFSET:0x00000d10, SIZE:0x00000342):
  2010.    - Public Definitions:
  2011.        _heapmin
  2012.  
  2013.    - External Definitions:
  2014.        DosFreeMem
  2015.        _critlib_except
  2016.        _DosSelToFlat
  2017.        _DosFlatToSel
  2018.        _pBucketArr
  2019.  
  2020.  
  2021. ΓòÉΓòÉΓòÉ <hidden> Listing Level 3 Example ΓòÉΓòÉΓòÉ
  2022.  
  2023. The syntax used to generate a listing file with level 3 option is: 
  2024.  
  2025. LIB /L:3 ALLOC, ALLOC3.LST
  2026.  
  2027. This command generates the following listing file called ALLOC3.LST: 
  2028.  
  2029. IBM (R) Library Manager Version 1.00
  2030. Copyright (C) IBM Corporation 1991.  All rights reserved.
  2031.  
  2032. Library name : D:\TEMP\ALLOC.LIB
  2033.  
  2034. Listing detail level : 3
  2035.  
  2036. 00000:malloc (OFFSET:0x00000010 , SIZE:0x000004ca): 
  2037.  
  2038.  - Public Definitions:
  2039.      malloc
  2040.  
  2041.  - External Definitions:
  2042.      DosAllocMem
  2043.      _ilog2
  2044.      _critlib_except
  2045.      _DosSelToFlat
  2046.      _DosFlatToSel
  2047.  
  2048.  
  2049. 00001:calloc (OFFSET:0x000004e0, SIZE:0x000001d1):
  2050.  - Public Definitions:
  2051.      calloc
  2052.  
  2053.   - External Definitions: 
  2054.     malloc               <- 00000:malloc 
  2055.     _critlib_except 
  2056.     _DosSelToFlat 
  2057.     _DosFlatToSel 
  2058.  
  2059.  
  2060.   00002:free (OFFSET:0x000006c0, SIZE:0x0000021a):
  2061.    - Public Definitions:
  2062.        free
  2063.  
  2064.    - External Definitions:
  2065.        DosFreeMem
  2066.        _critlib_except
  2067.        _DosSelToFlat
  2068.        _DosFlatToSel
  2069.        _pBucketArr
  2070.  
  2071.  
  2072.   00003:realloc (OFFSET:0x000008e0, SIZE:0x00000428):
  2073.    - Public Definitions:
  2074.        realloc
  2075.  
  2076.    - External Definitions:
  2077.        _ilog2
  2078.        free                               <- 00002:free
  2079.        malloc                             <- 00000:malloc
  2080.        _critlib_except
  2081.        _DosSelToFlat
  2082.        _DosFlatToSel
  2083.        _pBucketArr
  2084.  
  2085.  
  2086.   00004:heapmin (OFFSET:0x00000d10, SIZE:0x00000342):
  2087.    - Public Definitions:
  2088.        _heapmin
  2089.  
  2090.    - External Definitions:
  2091.        DosFreeMem
  2092.        _critlib_except
  2093.        _DosSelToFlat
  2094.        _DosFlatToSel
  2095.        _pBucketArr
  2096.  
  2097.  
  2098.   Page size = 16
  2099.  
  2100.   Flags = 0x0
  2101.  
  2102.   Contains extended dictionary
  2103.  
  2104.   Total number of modules = 5
  2105.  
  2106.   Total bytes for modules = 4592
  2107.  
  2108.   Total number of symbols in dictionary = 10
  2109.  
  2110.   Maximum number of symbols in dictionary = 74
  2111.  
  2112.   Total number of pages for the dictionary = 2
  2113.  
  2114.  
  2115.  
  2116.   ======== Dependencies by Module ========
  2117.   Module 00000 : (00000)
  2118.   Module 00001 : (00001) 00000
  2119.   Module 00002 : (00000)
  2120.   Module 00003 : (00002) 00000 00002
  2121.   Module 00004 : (00000)
  2122.  
  2123.  
  2124. ΓòÉΓòÉΓòÉ <hidden> /L Option Field Description ΓòÉΓòÉΓòÉ
  2125.  
  2126. This field is the number of the module within the parent library. The first 
  2127. module number in the listing file is 00000. 
  2128.  
  2129.  
  2130. ΓòÉΓòÉΓòÉ <hidden> /L Option Field Description ΓòÉΓòÉΓòÉ
  2131.  
  2132. This listing field contains the name of the module within the library. 
  2133.  
  2134.  
  2135. ΓòÉΓòÉΓòÉ <hidden> /L Option Field Description ΓòÉΓòÉΓòÉ
  2136.  
  2137. This listing field contains the relative offset of the module within the 
  2138. library. 
  2139.  
  2140.  
  2141. ΓòÉΓòÉΓòÉ <hidden> /L Option Field Description ΓòÉΓòÉΓòÉ
  2142.  
  2143. This listing field contains two columns of the module's public symbols. These 
  2144. are the symbols that are defined by the module. 
  2145.  
  2146.  
  2147. ΓòÉΓòÉΓòÉ <hidden> /L Option Field Description ΓòÉΓòÉΓòÉ
  2148.  
  2149. This listing field contains the module's symbols that are defined in a diffrent 
  2150. module within the library. In level 1 listings, the symbols are displayed in 2 
  2151. columns. For levels 2 and 3, the symbols appear in one column. 
  2152.  
  2153.  
  2154. ΓòÉΓòÉΓòÉ <hidden> /L Option Field Description ΓòÉΓòÉΓòÉ
  2155.  
  2156. This listing field contains the number and name of the module within the 
  2157. library that defines the corresponding public symbol. 
  2158.  
  2159.  
  2160. ΓòÉΓòÉΓòÉ <hidden> /L Option Field Description ΓòÉΓòÉΓòÉ
  2161.  
  2162. This listing field determines case sensitivity. 0x1 indicates case sensitivity 
  2163. as opposed to 0x0. 
  2164.  
  2165.  
  2166. ΓòÉΓòÉΓòÉ <hidden> /L Option Field Description ΓòÉΓòÉΓòÉ
  2167.  
  2168. This listing field contains the size of the object module within the library. 
  2169. The size of the module is expressed in bytes. 
  2170.  
  2171.  
  2172. ΓòÉΓòÉΓòÉ <hidden> Base and composite projects ΓòÉΓòÉΓòÉ
  2173.  
  2174. A project is either a base project or a composite project. A base project has 
  2175. the following characteristics: 
  2176.  
  2177.  o A language profile 
  2178.  
  2179.    The language profile lets the WorkFrame/2* know which compiler, linker, 
  2180.    debugger and make utility to use for your project. 
  2181.  
  2182.  o A title 
  2183.  
  2184.    The project's title is used in title bars and in list boxes to identify the 
  2185.    project. 
  2186.  
  2187.  o A directory 
  2188.  
  2189.    All files that comprise a project exist in this directory. If you want to 
  2190.    have files in different directories, create a composite project. 
  2191.  
  2192.  o A target file 
  2193.  
  2194.    The target file is the product you want to produce from a project. 
  2195.    Typically, it is either an executable file or a library. 
  2196.  
  2197.  o A make file 
  2198.  
  2199.    The make file is used by the make utility to create the target file from the 
  2200.    other project files. 
  2201.  
  2202.  o Options 
  2203.  
  2204.    You can set the options used when compiling, linking, debugging, running, 
  2205.    and making your project. 
  2206.  
  2207.  A project appears within the WorkFrame/2* as a window containing a list of the 
  2208.  project's files. Actions can be performed on the project as a whole or on 
  2209.  individual files. 
  2210.  
  2211.  A composite project is a collection of base projects or other composite 
  2212.  projects. Therefore, you can create a hierarchy of projects. For example, you 
  2213.  could create five base projects to build two executable files and three 
  2214.  dynamic link libraries (DLLs). The three DLL projects could then be part of a 
  2215.  composite DLL project. Finally, the DLL composite project and two base 
  2216.  projects for the executable files could be part of an overall composite 
  2217.  project. With this arrangement, you could: 
  2218.  
  2219.  o Make any of the 5 base projects individually 
  2220.  
  2221.  o Make the DLL composite project 
  2222.  
  2223.  o Make all the projects together. 
  2224.  
  2225.  
  2226. ΓòÉΓòÉΓòÉ <hidden> Dragging From a List Box ΓòÉΓòÉΓòÉ
  2227.  
  2228. To drag items from a list box to a target: 
  2229.  
  2230.   1. Select the items you want to drag by single-clicking with mouse button 1. 
  2231.  
  2232.   2. Hold down the mouse button 2 and move the mouse from the source list box 
  2233.      to the target area. Release the mouse button when the mouse pointer is 
  2234.      over the target area. 
  2235.  
  2236.  Outside of valid target areas, the mouse pointer looks like a circle with a 
  2237.  line through it. 
  2238.  
  2239.  To stop the drag, release the mouse button over the source list box or outside 
  2240.  a valid target area.