home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 19 / CD_ASCQ_19_010295.iso / vrac / bc45.zip / BC45EV.TXT < prev    next >
Text File  |  1994-11-01  |  30KB  |  590 lines

  1. Borland C++ Version 4.5
  2. Evaluator's Guide
  3. BORLAND INTERNATIONAL, INC.   1 BORLAND WAY
  4. P.O. BOX 660001, SCOTTS VALLEY, CA 95067-000
  5.  
  6.  
  7. Copyright 1994 by Borland International, Inc.  All rights reserved.  All
  8. Borland products are trademarks or registered trademarks of Borland
  9. International, Inc.  Other brand and product names are trademarks or
  10. registered trademarks of their respective holders. October 1994
  11.  
  12. PRINTED IN THE USA
  13. PART 1:  Introduction
  14.  
  15. About this guide
  16. We are pleased to present you with this release of Borland C++ 4.5.
  17. Borland C++ 4.5 provides innovative OLE 2.0 capabilities and enhanced
  18. 32-bit performance. In Part 2, Introducing Borland C++ 4.5, we'll give
  19. you a brief description of the features and benefits of the new product.
  20. Part 3, Borland C++ 4.5 in Depth, provides greater detail about specific
  21. product features, including important new facilities for building OLE
  22. 2.0 applications. Part 4 provides information on hardware and software
  23. requirements, as well as installation and storage requirements. This
  24. guide was written for product evaluators who are familiar with Borland's
  25. line of compiler products for DOS and Windows.  If you are not familiar
  26. with Borland C++ products, we would be happy to provide you with more
  27. in-depth information.
  28.  
  29. About Borland
  30. With headquarters in Scotts Valley, California, Borland International is
  31. the leading provider of comprehensive object-oriented language tools and
  32. class libraries worldwide.  Borland has achieved this status by
  33. consistently providing best-of-breed development tools to all
  34. programmersfrom novice to professionalfor the DOS and Windows
  35. environments, and for the OS/2 operating system. Borland is a publicly
  36. held company.  Its stock is traded over the counter by NASDAQ under the
  37. symbol BORL.
  38.  
  39. PART 2:  Introducing Borland C++ 4.5
  40.  
  41. Features and Benefits
  42. Borland C++ 4.5 includes important new capabilities in the following areas:
  43.  
  44. OLE 2.0 programming
  45.  
  46. Visual programming
  47.  
  48. Integrated Development Environment
  49.  
  50. VBX Integration
  51.  
  52. Compilation and linking
  53.  
  54. Online documentation
  55.  
  56. OLE 2.0 Programming
  57.  
  58. Simplified programmer interface to OLE 2.0. Borland C++ 4.5 introduces
  59. the ObjectComponents Framework, a class library that makes it easy to
  60. build OLE 2.0 capabilities into new programs and to add such
  61. capabilities easily into existing applications. Technology unique to OCF
  62. makes the processing of OLE requests a natural extension of a program's
  63. event handling structure. OCF technology has been integrated into the
  64. ObjectWindows Library but does not depend upon use of  OWL. OCF is
  65. designed to be used with other application frameworks. It can even be
  66. used with C++ applications written directly to the Windows API.
  67.  
  68. Visual Programming
  69.  
  70. Enhanced support for building OWL programs. AppExpert now supports
  71. automatic generation of OLE 2.0 applications, including object
  72. containers, object servers and automation servers. ClassExpert can add
  73. OLE automation to new applications as well as applications previously
  74. created with AppExpert. ClassExpert also makes it easy to create
  75. instances of OWL classes or ClassExpert-defined classes in user code.
  76.  
  77. Integrated Development Environment
  78.  
  79. Dynamic linking of help files. New OpenHelp technology permits users to
  80. add files to the IDE's help viewer dynamically. This makes it easy for
  81. developers to find help across the full set of technologies they use:
  82. Borland tools and libraries, system interfaces, third party packages and
  83. user-provided libraries.
  84.  
  85. VBX Integration
  86.  
  87. VBX controls in 32-bit applications. Developers of 16-bit applications
  88. have long taken advantage of the wide range of visual and non-visual
  89. components written to the Visual Basic Extension (VBX) specification.
  90. Borland C++ 4.5 is unique in permitting 32-bit applications to take
  91. advantage of these same components. VBX32 is a transparent mechanism
  92. which permits standard 16-bit VBX controls to be used within 32-bit
  93. applications without any extra effort on the part of the programmer.
  94. Existing 16-bit programs that use VBX controls can be moved to 32-bits
  95. with no more than a recompilation. (No change is required to the VBX
  96. controls themselves.) New 32-bit programs can take advantage of the wide
  97. variety of controls available, including those in Borland's own Visual
  98. Solutions Pack.
  99.  
  100. Compilation & Linking
  101.  
  102. Faster Compiles. Borland C++ 4.5 includes a new high performance
  103. optimizer and code generator for 32-bit applications. This new back end
  104. can generate code 50% faster than before for both unoptimized and
  105. optimized code. Reduced compile time means less time waiting and more
  106. time making your program work.
  107.  
  108. Faster Code. In addition to compiling faster, the new 32-bit compiler
  109. produces code which runs faster. Unoptimized code produced with this
  110. compiler runs an average of 25% faster than unoptimized code generated
  111. by the previous release. Optimized code averages 7%-10% faster than
  112. optimized code from the earlier compiler, with improvements of as much
  113. as 40% in some specific cases.
  114.  
  115. Smaller .EXE files. For 16-bit applications, Borland C++ 4.5 includes an
  116. enhanced linker. A new post-link process removes redundant information
  117. in .EXE files, reducing file size an average of 15% and application
  118. startup time an average of 10%.
  119.  
  120. Online Documentation
  121.  
  122. New Online Documentation Technology. Borland C++ 4.5 incorporates a
  123. powerful new search and display engine for online documentation. This
  124. new engine provides faster display of documentation, more flexible text
  125. search, copy and paste of text and code samples from manuals into user
  126. files and greater user control over the display format of documents.
  127.  
  128. PART 3:  Borland C++ 4.5 in depth OLE 2.0 Programming
  129.  
  130. Object Linking and Embedding (OLE) is an enhancement to the Windows
  131. environment that controls interaction among multiple applications. Using
  132. OLE 2.0 a single application can be used to examine and modify data
  133. created by many different programs. OLE achieves this with a set of
  134. interfaces that applications use to communicate with each other. OLE
  135. permits a program to communicate without any requirement for specific
  136. knowledge about the recipient of the communication.
  137.  
  138. The two major features of OLE 2.0 are compound documents and application
  139. automation. Compound documents permit an application to incorporate data
  140. from other OLE applications into its own documents. This data may be
  141. included directly in the document or it may be stored elsewhere and
  142. linked to the document. Automation permits one application to issue
  143. commands to control the behavior of another application.
  144.  
  145. ObjectComponents Framework
  146.  
  147. While OLE can add powerful capabilities to applications, few
  148. applications have been able to take advantage of this power. The
  149. programmer interface for OLE 2.0 is large and complex, with most
  150. operations requiring many interrelated procedure calls. For many
  151. applications the addition of OLE requires writing thousands of lines of
  152. additional code.
  153.  
  154. In addition to the sheer size of its API, programmers are confronted
  155. with the difficulty of changing their event-based Windows programs to
  156. deal with the Component Object Model (COM) interface used by OLE 2.0.
  157. Supporting the COM interface can require an extensive rearchitecting of
  158. an application's structure.
  159.  
  160. Borland's architecture provides a dramatic simplification of the
  161. programmer's view of OLE. The ObjectComponents Framework (OCF) is a
  162. class library that describes OLE's capabilities at a higher level of
  163. abstraction, mapping a single programmer request into the many OLE
  164. operations required to satisfy it. In many ways the relationship between
  165. OCF and OLE is like that of a high level language to native machine
  166. instructions.
  167.  
  168. OCF simplifies the programmer's job in a second way: by permitting
  169. applications to receive OLE automation requests through their Windows
  170. event  handlers. OCF translates COM messages used to implement
  171. automation into Windows events. This means that existing Windows
  172. applications can be turned into OLE automation servers without any
  173. change to their structure.
  174.  
  175. OCF does not depend on the use of OWL, Borland's ObjectWindows Library.
  176. It can be used with other Windows interface frameworks or by
  177. applications coded directly to the Windows API. OWL-based applications
  178. do receive some special benefits from OCF. New OWL classes like
  179. TOleWindow and TOleDocument already encapsulate OCF capabilities, making
  180. adding OLE to an existing OWL application fast and easy.
  181.  
  182. OCF supports the full range of OLE 2.0 capabilities. Borland is unique
  183. in providing all of the features discussed below, as well as in making
  184. access to these features so simple. Other OLE 2.0 solutions require
  185. direct programmingas well as an in depth understanding of OLE 2.0 -- to
  186. add these capabilities to an application.
  187.  
  188. Object Container Support
  189.  
  190. Linking and embedding: To embed data from one application in the
  191. document of another, OCF provides classes to represent the data in the
  192. object and an image of the data for drawing on the screen.  The data
  193. must be separable from its graphical representation because OLE
  194. transactions are sometimes handled by different programs.  When the
  195. container asks the server for an object to embed, the server must
  196. provide data and a view of the data.  The server can also be asked to
  197. edit the object even after it is embedded and to read or write the
  198. object to and from the container's document file.  The OCF classes
  199. handle both sides of these negotiations for you.
  200.  
  201. Clipboard operations:  The default handlers for the OCF messages handle
  202. cutting and pasting for you.  If you add standard commands like Insert
  203. Object and Paste Link to your menus, OCF will implement them for you.
  204.  
  205. Drag-and-drop operations:  The default handlers for OCF messages help
  206. you here, too.  If the user drops an OLE object on your container's
  207. window, OCF inserts it in your document.  If the user clicks the
  208. embedded object, OCF activates it.  If the user drags the object, OCF
  209. moves it.
  210.  
  211. Standard OLE 2 user interface:  OLE defines standard user interface
  212. features that programmers are expected to provide.  Built into OCF are
  213. dialog boxes for commands like Insert Object, Paste Special, and Paste
  214. Link; a pop-up menu that appears whenever the user right-clicks an
  215. embedded object; and an item on the container's Edit menu that shows the
  216. verbs available for the active object.  OCF modifies the container's
  217. window when the server takes control of the container's tool bar, status
  218. bar, and menus during in-place editing.
  219.  
  220. Compound files:  OLE introduces a new storage model that gives
  221. consistent structure to the contents of disk files.  The inside of an
  222. OLE file is divided into compartments and subcompartments.  Each
  223. compartment is called a storage.  An OCF class called TOcStorage
  224. encapsulates file input and output commands to compound files.  If you
  225. convert an ObjectWindows Doc/View application into an OCF container, the
  226. document writes itself to a compound file automatically, creating
  227. storages and substorages within the file as needed.
  228.  
  229. Object Server Support
  230.  
  231. OCF allows developers to create an OLE server as either a stand-alone
  232. executable program (.EXE) or as DLL server.  Because a DLL Server runs
  233. in the same process as the container application, information exchange
  234. between the server and the container occurs very quickly.  By contrast,
  235. information exchange between a container and an .EXE server requires
  236. marshaling support which can be very time consuming.  Marshaling has the
  237. advantage of permitting data exchange between 16- and 32-bit processes.
  238.  
  239. Automation Support
  240.  
  241. OCF permits C++ classes to be automated without structural changes to
  242. the classes themselves.  OCF uses nested classes that directly access
  243. the existing class members.  These nested classes instantiate small
  244. command objects which call the members through standard C++ mechanisms,
  245. avoiding restrictive, non-portable stack manipulations.  The command
  246. objects provide hooks for undoing, recording, and filtering automation
  247. commands.  A program can even send itself automation commands using
  248. standard C++ code.
  249.  
  250. These classes expose member functions and data of C++ classes to other
  251. applications via OLE automation.  New methods and properties can be
  252. added to application-specific classes that support OLE automation.
  253.  
  254. Localization support:  OLE servers need to speak the language of their
  255. client programs.  If an automation server is marketed in several
  256. countries, it needs to recognize commands sent in each different
  257. language.  A linking and embedding server registers strings that
  258. describe its objects to the user, and those too should be available in
  259. multiple languages in order to accommodate whatever language the user
  260. may request.  If an application provides multiple translations for its
  261. strings, OCF uses the right strings at the right time.  Add your
  262. translations to the program's resources and mark the original strings as
  263. localized when you register them.  At run time, OCF quickly and
  264. efficiently retrieves translations to match whatever language OLE
  265. requests.
  266.  
  267. Description field and help context:  Borland's automation macros make it
  268. easy to include meaningful descriptions for each of the methods or
  269. properties exposed by the automation server.  You can also supply a help
  270. identifier to provide context sensitive help.
  271.  
  272. Argument validation: When an automation client is controlling an
  273. application, it is easy to crash the server by passing unexpected or
  274. erroneous data. Borland allows a developer to supply functions that
  275. validate the data received by the server.  The AUTOVALIDATE macro is
  276. used to supply a validation function.
  277.  
  278. Type library generation: A type library describes for OLE all the
  279. commands available for controlling an automated application.  Once an
  280. automation server has be created, you can ask OCF to build and register
  281. a type library for you.
  282.  
  283. Visual Programming
  284.  
  285. Creating a professional Windows application is not an easy task.  By
  286. providing visual programming tools in Borland C++ 4.0, the developer can
  287. concentrate on creating unique features rather than the mundane tasks of
  288. setting up a Windows application.  There are three main goals of the
  289. Borland visual programming tools:  simplify the process for beginners,
  290. make a system that is useful for professionals and enhances OOP design,
  291. and provide a flexible system that does not rely on "black boxes".
  292.  
  293. There are two visual programming Experts.  AppExpert is used to generate
  294. the source code for a new Windows application, and ClassExpert is used
  295. to refine and customize the application.
  296.  
  297. AppExpert
  298.  
  299. AppExpert generates all the files needed to create a Windows
  300. application.  These include source files, resource files, and rich text
  301. format (RTF) files for use with help files.  AppExpert applications can
  302. have multifile editing capabilities, complete with search, replace, and
  303. undo, printing capabilities, a context sensitive help system, and an
  304. about box.  These applications can also have a menu system, SpeedBar,
  305. and status line.
  306.  
  307. The AppExpert options are selected from a Settings Notebook.  There are
  308. three main pages in the notebook, entitled Application, Main Window, and
  309. MDI Child/View.  These summary pages contain a brief description of
  310. modifications available, followed by the most commonly used options.
  311.  
  312. The Application page lets the user specify whether the application is to
  313. support the single document interface (SDI) or multiple document
  314. interface (MDI) or whether it should use a dialog as the main window.
  315. The Application page also specifies whether the application should
  316. support features such as a SpeedBar or status line.
  317.  
  318. The Main Window page lets the user choose the background color of the
  319. application and the window title.
  320.  
  321. The MDI Child/View page allows the user to set the default MDI child
  322. class and source file names.  This page is only valid for MDI
  323. application that use the document/view model.
  324.  
  325. Once the application options are chosen, pressing the Generate button
  326. creates the application.  At this point, AppExpert has created a full
  327. featured Windows application.  The application simply needs to be
  328. compiled and run.
  329.  
  330. AppExpert: Advanced Options
  331.  
  332. Advanced features are accessed by expanding the options under each
  333. summary page.  Selecting an item from this list displays an entry
  334. screen.  For example, under the Application section the user can select
  335. from Basic Options, OLE 2 Options, Code Gen Control, or Admin Options.
  336. Selecting Basic Options displays a configuration screen that allows the
  337. user to specify the application startup state and the control style.
  338.  
  339. OLE 2 Options is the most important new item in the Application section. The user can create an application that is an OLE 2 Container, OLE 2 Server, or both.  The user can build either a DLL Server or an EXE Server.  The user also has the option of adding automation support to the application.
  340.  
  341. ClassExpert
  342.  
  343. Once the basic application has been generated you can invoke the
  344. ClassExpert to customize it.  The ClassExpert lets you navigate and
  345. customize the classes in your application, as well as add new ones.
  346.  
  347. There are three parts to ClassExpert.  These include a Class window, an
  348. Events window, and Source windows. You can right click in any of these
  349. windows to display a context sensitive SpeedMenu.
  350.  
  351. The Class window shows all ObjectWindows-derived classes that are in the
  352. application.  This list is updated as new classes are added.  Double
  353. clicking on a class displays the constructor for the class.  Single
  354. clicking on a class moves to the last edited item for that class.  Thus
  355. the class list serves as a very efficient way to navigate through code
  356. for an application.  You can readily move back and forth between code in
  357. different classes to compare operations.  Among other things, the
  358. SpeedMenu for the Class window allows the user to add a new class to the
  359. project or automate an existing class.  When Automate Class is chosen,
  360. an Automation entry is added to the Events window.
  361.  
  362. The Events window shows a list of events that can be customized for the
  363. selected class. Events are broken up into categories, such as Command
  364. Notifications, Control Notifications, Virtual Functions, and Windows
  365. Messages.  Events are subdivided within the categories.  This
  366. hierarchical organization makes it far easier to grasp the range of
  367. events that may be customized.
  368.  
  369. The Source window appears in the bottom of the ClassExpert.  This
  370. contains a complete BRIEF-like text editor. You can edit text, search
  371. for expressions, move blocks, and even set break points and step through
  372. the application.  Using the SpeedMenu, the constructor call for any OWL
  373. class or ClassExpert created class can be easily added to the source
  374. code.  For example, to instantiate a TPen object, select Use Class from
  375. the SpeedMenu to display the Use Class dialog.  Select Use OWL base
  376. classes and then scroll the Class to Instantiate list box until TPen is
  377. displayed.  Double-click on TPen and the following line is added to the
  378. source file:
  379.  
  380. //    TPen   *xTPen = new TPen(HPEN handle, TAutoDelete autoDelete
  381. = NoAutoDelete);
  382.  
  383. This line shows you the syntax for creating a TPen object, with the
  384. types of data needed by its constructor and their default values. Just
  385. replace the prototype arguments with real values and remove the slash
  386. marks and you have a correct statement for instantiating the object. And
  387. you've done it in less time and with far less likelihood of error.
  388.  
  389. ClassExpert: Adding Handlers
  390.  
  391. ClassExpert has a built in database of OWL information.  It not only
  392. understands the command notifications that apply to a class and the
  393. control notifications that apply to a control, but the set of virtual
  394. functions relating to a class as well.  Therefore, the user can easily
  395. reuse OWL classes and take advantage of OOP inheritance.  Base functions
  396. are called automatically as appropriate.
  397.  
  398. To customize a class, find the particular message or function for which
  399. you want to add code.  For example, expand the virtual function list to
  400. find the Create or the Paint method.  Then, right click on the method
  401. and select Add Handler.
  402.  
  403. When you add a handler, a check mark appears next to the event to
  404. indicate that it is customized.  A skeleton handler function is added to
  405. the source, the edit window is scrolled to the handler, and you can
  406. begin typing code.
  407.  
  408. If the class you are customizing has been automated, the Events window
  409. contains an entry titled Automation.  This entry allows you to automate
  410. any data, methods, or properties contained in the class.  New data,
  411. methods, and properties can be created here as well.
  412.  
  413. ClassExpert: Adding A New Class
  414. Not only can you customize existing classes, but you can readily add new
  415. classes with ClassExpert.  To do so, right click in the Class pane and
  416. select Create new class.  A window appears with an extensive list of
  417. classes you can use as the base class for the new class.
  418.  
  419. Typically only visible classesthose causing something to be drawn on the
  420. screencan be used as the base class.  However, when Show All Classes is
  421. selected, a class can be derived from any OWL base class, providing far
  422. more flexibility and ease when creating an application.
  423.  
  424. ClassExpert: Automating A Class
  425. The ClassExpert allows the user to add automation support to an
  426. AppExpert generated application.  Any class can be automated.  To
  427. automate a class, select it from the Classes Pane and bring up the
  428. SpeedMenu by pressing the right mouse button.  Complete the process by
  429. selecting Automate class from the SpeedMenu. An Automation entry will be
  430. added to the Events Pane.
  431.  
  432. The data members and methods associated with a class may be automated
  433. from the events window by pressing the right mouse button over the
  434. appropriate entry and selecting Add Data or Add Method from the Speed
  435. Menu. Then fill in the fields of the dialog box. The parameters to an
  436. automated method are listed just as they would be in the actual function
  437. definition.  Borland's encapsulation of OLE 2.0 automation supports a
  438. description field and a help context identifier.  This provides the user
  439. of the automation controller additional information about the properties
  440. and methods exposed by the server.
  441.  
  442. In addition to direct use of the data members and methods of a class,
  443. read-only and writeable properties may be defined. It is recommended
  444. that developers automate properties instead of working with data members
  445. and methods directly.  This shields automation users from changes in the
  446. implementation of a class. Situations can develop in which a value that
  447. was previously stored in a data member is replaced by a derived value.
  448.  
  449. Properties can be automated as easily as data members and methods. The
  450. Automate Property dialog accepts the property's name (e.g. Width) its
  451. data type and whether it may be retrieved (get) and/or modified (set).
  452.  
  453. From this information ClassExpert generates the functions that get and
  454. set the property's value, using the property name as part of the
  455. function name (GetWidth and SetWidth in the example above).
  456.  
  457. With ClassExpert it is easy to add automation support to any application
  458. generated by AppExpert, including those built with Borland C++ 4.0.
  459.  
  460. Compilation & Linking
  461. Borland C++ 4.5 contains enhancements for both 16-bit and 32-bit
  462. development. For 16-bit developers there is a new set of linker options
  463. that can reduce the size of program files and their startup times. For
  464. 32-bit developers there is a new code optimizer and generator that both
  465. runs faster and produces faster code.
  466.  
  467. 16-bit Linker
  468. The 16-bit linker supports a new set of options for eliminating
  469. redundant data and compacting .EXE and .DLL files. These options are
  470. implemented as part of a post-link process. When these options are
  471. present, the normal link takes place. On completion the .EXE or .DLL
  472. file is reopened, optimizations are done and a new file is written. This
  473. new file is typically 15% smaller than before. With fewer disk blocks to
  474. read, the program loader can start the program an average of 10% faster.
  475.  
  476. The following link optimizations are supported. Command line switches
  477. for each option follow the name of the option:
  478.  
  479. Chain Fixups: /Oc. Removes duplicate and/or unnecessary fixup data from
  480. the file. This is done by emitting only one fixup record for each unique
  481. internal fixup, and "remembering" the duplicate fixups by creating a
  482. linked list of the fixup locations within the data segment. Also
  483. eliminates trailing zeroes in data segments.
  484.  
  485. Iterate Data: /Oi. Scans data segments for patterns of data (e.g., a
  486. block  of 128 zero-filled bytes) and replaces them with a compressed
  487. equivalent (a data value and byte count).
  488.  
  489. Minimize Segment Alignment Value: /Oa. Adjusts the minimum segment
  490. alignment value based on  the size of the file.  A file of 1 to 64K
  491. results in an alignment value of 1, 64K+1 to 128K results in a value of
  492. 2, etc. Produces a smaller file.  In some cases this optimization for
  493. size will make programs load more slowly since segments may cross
  494. physical disk sector boundaries more often.
  495.  
  496. Minimize Resource Alignment Value: /Or. Applies segment alignment
  497. optimization to resource alignment values.
  498.  
  499.  
  500. 32-bit Compiler
  501. Borland C++ 4.5 includes a new compiler for building 32-bit
  502. applications. This compiler contains a new back end (optimizer and code
  503. generator) that runs faster and produces faster, smaller and more robust
  504. code.
  505.  
  506. As mentioned earlier, in a series of benchmarks, the new compiler
  507. generated code at roughly twice the rate of its predecessor. This
  508. improvement was observed when compiling both with and without code
  509. optimization. Despite taking less time to compile, it actually produces
  510. better, faster code. A comparison of applications compiled without
  511. optimization showed an execution time improvement of 25% with the new
  512. compiler. With optimization turned on for both compilers, the new
  513. compiler generated code that ran an average of 7%-10% faster.
  514.  
  515. Using the new compiler to build itself produced similar results. Code
  516. generation was twice as fast as before. The resulting code runs 10%
  517. faster. The code size for the compiler was reduced by 15%.
  518.  
  519. The earlier 32-bit compiler continues to be available in the product.
  520. Its use should be limited to users who have written code that depends on
  521. specific compiler behavior or peculiarities. This compiler has been
  522. renamed to bcc32a.exe. Command line users may invoke it by name. IDE
  523. users will need to rename this file to bcc32.exe to replace the new
  524. compiler with the old.
  525.  
  526.  
  527. Online Documentation
  528. With version 4.5, Borland C++ moves to a new technology for its online
  529. documentation set. The PostScript viewer used in previous releases has
  530. been replaced with a new DynaText browser and viewer.
  531.  
  532. This new system has many advantages for the user. Rather than attempting
  533. to duplicate the appearance of the printed page, the new system formats
  534. text and graphics for the best possible viewing within the window
  535. provided by the user. This eliminates the requirement for horizontal
  536. scroll bars when the window can't be wide enough to show the whole page.
  537. It also eliminates many of the compromises required by a page design
  538. that must support both printing and on-screen viewing.
  539.  
  540. The document viewer supports hypertext links to related documents. In
  541. addition, it permits selection of any arbitrary section of text. This
  542. permits users to copy information from the documentation to their own
  543. files. This is especially valuable when users find useful pieces of
  544. source code that they would like to examine from within the IDE.
  545.  
  546. To reduce screen clutter, users may choose to replace graphics and
  547. tables in the text with markers. Clicking on these markers will cause
  548. the graphic to be displayed in its own window.
  549.  
  550. The viewer also supports sophisticated capabilities for full text
  551. search. A search may involve multiple words, wildcard characters,
  552. proximity searches and boolean expressions. Searches may be conducted
  553. across multiple document collections.
  554.  
  555. Matches are displayed in decreasing order of frequency. The user can
  556. select a particular document and see the document's table of contents
  557. with a match count for each entry. Within the text, matches are
  558. highlighted to make them easy to find.
  559.  
  560.  
  561. PART 4:  Appendix
  562.  
  563. Hardware/software requirements
  564. Borland C++ 4.5 requires a minimum of 50 MB of hard disk space for
  565. command line tools, and a minimum of 80 MB for visual tools and
  566. utilities.  Running directly from the CD-ROM requires 20 MB.  Borland
  567. C++ 4.5 requires MS-DOS 4.01 or later, and Windows 3.1 or later.
  568.  
  569. A minimum specification corporate PC is an 8 MB 20 MHz 80386 with a 100
  570. MB hard disk and VGA resolution. A fast 486 or Pentium with 16M of RAM
  571. is recommended.  Installation Borland C++ 4.5 installs automatically.
  572. Insert the first disk of the install set in your A: drive and type
  573. INSTALL.
  574.  
  575.  
  576. PART 5:  Conclusion
  577.  
  578. Borland C++ 4.5 solidifies Borland's leadership in C++ and demonstrates
  579. Borland's commitment to bringing the best development tools to a wide
  580. range of environments and operating systems.  It provides a series of
  581. features important to the DOS and Windows developer, such as:
  582.  
  583. Easy access to the power of OLE 2.0
  584. Faster development of smaller, faster programs
  585. Easier access to online documentation and help
  586.  
  587. We are confident you will share our enthusiasm for this new Borland C++
  588. compiler.  If you have any questions about this product, please feel
  589. free to contact us.
  590.