Borland C++

Version: 
2.0
Release date: 
Thursday, 10 November, 1994
Price: 
US$ 499

License:

Interface:

Authors/Port authors:

The amazing Borland C++ Compiler, optimized release, finally available also for OS/2 Warp! Indeed it is very fast, highly performing, complete, easy to use and with a really comprehensive documentation!

This release of Borland C++ for OS/2 includes the following new features:

  • ObjectWindows Library for Presentation Manager
  • A text-mode debugger (TDOS2)
  • RCONVERT - a tool for converting Windows resources to Presentation Manager format

This product, although not being developed/updated/sold since long time, it is luckily available as "Abandonware" software on many dedicated sites on world wide web.

This software is distributed as compressed package. You have to download and manually install it; if prerequisites are required, you will have to manually install them too.

Manual installation

Program is available on floppy-disks and CD-ROM, both in self-installer format. Run A:\install.exe or D:\INSTALL\install.exe, where A:\ and D:\ are, respectively, floppy-disk and CD-ROM drive letters. See below for download link(s).

Suggested installation instructions for eComStation and ArcaOS with only one JFS disk drive:

To install Borland C++ CD-ROM release on eComStation or ArcaOS Operating Systems with only one hard disk drive using JFS filesystem, it is suggested to install a RAM disk drive, create on it OS2\DLL directories, copy your CONFIG.SYS on it and select the RAM disk drive for "OS/2 Directory" during installation process. At the end, you need to move CONFIG.SYS, CONFIG.BOR and BPMCC.DLL file (inside OS2\DLL), from RAM disk to your boot drive.

Following ones are the download links for manual installation:

Professor Owl v. 1.0.8 (6/9/2005, Edward March) Readme/What's new
Professor Owl 1.08 ------------------ Date: September 1, 2005 Author: Edward March Jr. License: Open Source under the GNU GPL license Email: emarch@intergate.com Home Pages: http://www.intergate.com/~emarch/ Description: ------------ Professor Owl is a C++ Code generator for the Object Window Library. It is the fastest way to wrte OS/2 applcations using your Borland C++ compiler and the Object Window Library classes. Professor Owl generates skeleton applications, make files, and C++ code with headers. It is easy to add objects and classes with functions/events to your existing C++ files or new C++ files. You push the buttons and let Professor Owl do the rest. It knows about hundreds of functions, parameters and classes that make up the Object Window Library(tm). Now released as Open Source under the GNU GPL License. Dear Programmer, --------------- Quick start for instalation. Unzip all files into a temporary directory, from this temp directory run INSTALL.CMD - this will copy the files to a final directory and create the desktop objects and shadows. Thank you for evaluating Professor Owl order. I hope it brings you many productive hours of joy. Startup When Professor is first run, it will look for C++ code in the current directory. If none is found. It will ask to create an application. Run the setup to set your paths correctly got BC++ and your owl directory. Select Path from the File menu and make a sample directory. In this directory you can create an application. Sincerely, Ed March
 hobbes.nmsu.edu/download/pub/os2/dev/proglang/cpp/ProfessorOwl_1-08r2.zip
Borland C++ v. 2.0 (10/11/1994, Borland International) Readme/What's new
/************************************************************************/ Welcome to Borland C++ for OS/2 Version 2.0 This README file contains important information about Borland C++. For the latest information about Borland C++ and its accompanying programs and manuals, read this file in its entirety. For useful information on working with the Borland Debugger, see the online file README.TD in the DOC subdirectory of your Borland C++ installation. ----------------- TABLE OF CONTENTS ----------------- I. How to Get Help II. Installation III. Features IV. Important Information V. Other Useful Information ------------------ I. HOW TO GET HELP ------------------ If you have any problems, please read this file, the online help, and other files in your DOC subdirectory, and the Borland C++ manuals first. If you still have a question and need assistance, help is available from the following sources: 1. Type GO BORLAND on the CompuServe bulletin board system for instant access to the Borland forums with their libraries of technical information and answers to common questions. If you are not a member of CompuServe, see the enclosed special offer, and write for full details on how to receive a free IntroPak containing a $15 credit toward your first month's on-line charges. 2. Check with your local software dealer or users' group. 3. Borland's TECHFAX service. Call (800) 822-4269 for a FAX catalog of entries. 4. If you have an urgent problem that cannot wait and you have sent in the license agreement that came with the package, you may call the Borland Technical Support Department at (408) 461-9133. Please have the following information ready before calling: a. Product name and serial number on your original distribution disk. Please have your serial number ready or we will be unable to process your call. b. Product version number. The version number for Borland C++ can be displayed by pressing Alt-H/A in the IDE. c. Computer brand, model, and the brands and model numbers of any additional hardware. d. Operating system and version number. (The version number can be determined by typing SYSLEVEL at the OS/2 shell prompt.) e. Contents of your CONFIG.SYS file. ---------------- II. INSTALLATION ---------------- To install Borland C++ for OS/2 you must have OS/2 previously installed. This may be the OS/2 v2.1 product, the OS/2 for Windows release, OS/2 Warp, or any of the current shipping Service Pack's for these versions of OS/2. To install Borland C++, just click on the "Drive" prompt for your CDROM drive on the desktop, cd into the install directory and double-click the Install icon. You can then select installation options, or click on the install button to begin installing immediately. Please note that the install reports that 65 Mbytes are required on a full install for unpacking and help file creation, but that 67 Mbytes are actually needed. As part of updating your config.sys file, the install will add the line SET IPFC=c:\bcos2\ipfc when the line doesn't already exist. If config.sys already has a "SET IPFC" line, install will append c:\bcos2\ipfc to the end of this line even though IPF.exe will only look in the first directory for its support files. If you want to use the IPF support files provided by Borland, delete the first directory path from the "SET IPFC" line and reboot. For example, change SET IPFC=c:\tookit\ipfc;c:\bcos2\ipfc to SET IPFC=c:\bcos2\ipfc ("c:\bcos2" is replaced with your specified path if different). NOTE: If you do not expect to use the IBM Help Viewer to access the *.INF files and you selected them to be installed, you may delete them from the BCOS2\BIN directory and save substantial disk space. The reference files you may want to keep include TASM.INF, IPFC20.INF, IPFCEXMP.INF, and GUIREF20.INF. If you selected Borland OS/2 help files and did not install the IDE, Debugger, or Resource Workshop, you may delete the *.HLP files from the BCOS2\BIN directory to save additional disk space. NOTE: Two ObjectWindows examples will not be installed by the installation program. The examples are OWLAPI\PROFILE and OWLAPPS\TRACE. These examples can be copied to your hard disk from directory BCOS2\EXAMPLES\OWL. ------------- III. FEATURES ------------- This release of Borland C++ for OS/2 includes the following new features: - ObjectWindows Library for Presentation Manager - A text-mode debugger (TDOS2) - RCONVERT - a tool for converting Windows resources to Presentation Manager format ObjectWindows Library for Presentation Manager ---------------------------------------------- The ObjectWindows Library (OWL) for Presentation Manager is a framework that makes developing Presentation Manager applications much easier. All of the OWL examples have make files and prj files. To use the make files: make (dll model) make -DMODEL=f (static model) make -DDEBUG (debug version) To use the PRJ files, open the project in the IDE and select RUN IDE --- - Local popup menus for most IDE desktop objects: editor, transcript, project, and others - Drag & drop support from project to IDE desktop and PM to IDE desktop - Background compiling and Transfer features - A speedbar with icons for compilation, debugging, and editor actions - Easy access to all configuration options via the Settings notebook by choosing the Project|View Settings menu command - Buttons to revert to default settings in notebooks - Syntax highlighting for increased code readability - Configurable key bindings for the editor using the Editor Key Bindings setting in the Environment|Preferences subsection of the Settings notebook - Printing support under File|Print - Context-sensitive help on most objects and keywords - Extensive integrated debugging Compiler -------- - Support for ANSI/ISO C++ exception handling, structured exception handling under C, and mixed C/C++ exception handling - Additional optimizations and faster compile time - Support for ANSI/ISO C++ operator new[] and operator delete[] - Runtime Library support for the ANSI C++ string class - Support for ANSI/ISO C++ runtime type identification (RTTI) - Support for ANSI/ISO C++ new style casts dynamic_cast, static_cast, const_cast, and reinterpret_cast DLLs ---- When creating a DLL which will be loaded by either a non-Borland built executable, or explicitly loaded by calling DosLoadModule, the global variable _multidll must be set as follows to ensure initialization of the DLL. extern int _multidll = 0; This statement should be placed globally in some module being linked into the DLL. When _multidll is set to zero, the DLL initializes itself when it is loaded by the operating system. When _multidll is set to one, executables built using Borland tools initialize the DLL after the DLL is loaded by the operating system. Under OS/2 2.1 there is no guarantee that interdependent DLL's will be initialized in the correct order. An example of interdependent DLL's would be a DLL containing a global class instance where that class' constructor makes a call to some Runtime Library (RTL) function. If the dynamic version of the RTL was linked to the DLL, the RTL DLL would need to be initialized first. By default, DLLs built using Borland tools let Borland-built executables do the initialization. This works only if the DLL was loaded implicitly when the executable was loaded. If the DLL was loaded with the kernel function DosLoadModule, the DLL would need to initialize itself by setting _multidll to one. Resource Workshop ----------------- - The text editor included in Resource Workshop is limited to ASCII representations of resources that are no greater than 32K in length. - View|Show items or View|Show identifiers may give "Too many defines to view" or "Too many items to view" message if there are more than 1800 or so items in your project. You will always get this if your project includes a header file with many items in it, such as OS2.H. Temporarily excluding such a file will allow you to use these View menu facilities. - Due to the graphical nature of many tasks performed in Resource Workshop for Presentation Manager, there are a variety of painting and display problems that can occur as a result of the video driver being used in a particular configuration. If you encounter these types of problems, check with your video card supplier to see if there is a newer driver provided for the setup you are using. Note that SVGA driver services currently seem to have more limitations than VGA. NOTE: The ComboBox for the Controls | New dialog box is not initialized. Simply press the down arrow control to list available controls. RCONVERT Resource Conversion Tool --------------------------------- RCONVERT is a command-line tool that converts Windows-formatted resources with .ICO, .CUR, and .BMP extensions to Presentation Manager format. We recommend that you convert COPIES of your sources because RCONVERT will overwrite the given resource file. Use the -? option to see the RCONVERT option screen. To convert resources from an RC file, just supply that file name on the command line. Here's one example: RCONVERT -ic:\bc4\include myres.rc RCONVERT: - Won't convert Windows fonts. - Won't convert compressed bitmaps. They must be uncompressed before conversion. - Will convert only 2, 16, and 256-bit color images for icons and cursors. - Won't directly convert .ICO, .CUR, and .BMP file names on the command line. The resource identifier generation switch (-a) is on by default. The resulting #defines are put into the first header file #included in the main .RC file, unless the #included file: - contains "windows" in its name - is BWCC.H - contains "OWL\" in its name If RCONVERT cannot find a header to put identifiers into, it puts them in the .RC file. If the resource identifier generation switch is turned off (-a-), the user must manually generate resource identifiers. The -s (off by default) generates conditionalized resource files. Using this switch leaves in the Windows versions of the resource, and surrounds the Windows and Presentation Manager resource versions with conditional-compilation statements. For example: #ifndef __OS2__ ... // Old Windows source here #else ... // New PM source here #endif For "file" resources (e.g. 1 BITMAP foo.bmp), the WIndows file is left alone. The OS/2 resource is put in the parent .RC file as a "free-form" resource. For example: BITMAP 1 { // string of hex digits surrounded by single quotes ... } Error and warning messages are the same as the resouce compiler messages, with the addition of some conversion warning messages about Windows styles with no Presentation Manager equivalent. ------------------------- IV. IMPORTANT INFORMATION ------------------------- CLASSLIB -------- If you are going to build the class library yourself you must make a change to the class library makefile. Line 79 currently reads: BCC = bcc It should be changed to BCC = bcc -DBI_PLAT_OS2 OWL --- To set OWL libraries use the Libraries minor tab, or the Linker major tab of the BCOS2 Settings|Notebook. Creating an OWL project in the IDE. ----------------------------------- The following instructions assume that this release is installed in C:\BCOS2. If you have installed it in another directory and/or drive, replace all occurrences of BCOS2 and/or C: below with the directory and/or drive name in which you installed this release. By way of example we will recreate the ACLOCK example project file. 1)From command line rename C:\BCOS2\EXAMPLES\OWL\OWLAPPS\ACLOCK\ACLOCK.PRJ to OLD.PRJ, and delete *.DSK *.OBJ *.EXE files from this directory. 2)Start BC from command line or by double clicking on the BC icon in the Borland C++ folder. 3)Select Project|Open C:\BCOS2\EXAMPLES\OWL\OWLAPS\ACLOCK\ACLOCK.PRJ. This creates a new project. 4)In the "Project" window select insert. The "Add to Project List" dialog will come up. Add the following files: ACLOCK.CPP (in current directory) ACLOCK.RC (in current directory) 5)Open the Project|ViewSettings|Linker|Libs page and turn on the Dynamic switch for both "Standard runtime libs" and "Container class libs". Turn on the ObjectWindows Library switch for Dynamic libraries. 6)Open the Project|ViewSettings|Linker|Linker page and turn on the "Case sensitive link" and "Case sensitive exports" switches. 7)Open the Project|ViewSettings|Directory page and: For Include path type in "..\..\..\..\include" For Lib path type in "..\..\..\..\lib" (Note: You can also use absolute paths) 8)Close the Options Notebook and save the project. Now you can do a Compile|BuildAll and Run|Run to run the ACLOCK example. OS/2 ---- - OS/2 provides a master index file you can use to access the Presentation Manager reference online help file. In order to access this index, you must add the following lines to your CONFIG.SYS file: SET PMREF=PMFUN.INF+PMGPI.INF+PMHOK.INF+PMMSG.INF+PMREL.INF+PMWIN.INF+ PMWKP.INF SET HELPNDX=EPMKWHLP.NDX Then at the OS/2 prompt type "VIEW PMREF". You can reference the entire Presentation Manager online reference from this single index. - OS/2 has problems with 64k multiples for a stack, we suggest that you try 62k multiples or less. - DosExit() utilization is not recommend in OS/2 applications. We recommend that you use exit() instead due to required RTL initialization / cleanup. --------------------------- V. OTHER USEFUL INFORMATION --------------------------- INTEGRATED DEBUGGING -------------------- "Return from function" under the Run menu will run the current function at full speed until it returns to the function which called it. The Breakpoints detail view keeps track of changes made to source modules containing breakpoints by inserting the new line number information along side the original breakpoint information. Debugging a process the second time may result in old information displayed in the Breakpoints or Disassembly view if the Project Settings notebook environment preferences "Auto Save Editors" is set to OFF. Saving changed files before restarting a debugging session fixes the problem. If you experience very slow stepping while a DOS window is open, you should set IDLE_SENSITIVITY under Settings|Session|DOS settings to a low value. This also applies to standalone debugging. STANDALONE DEBUGGING WITH TDOS2.EXE ----------------------------------- The TDOS2 debugger will only debug PM programs when run from a full screen OS/2 Session. You can run a full screen OS/2 session by changing the Settings options on the OS/2 icon for TDOS2. To do this, right mouse click on the icon, then select the arrow to the right of the open menu choice, then select Settings | Session | OS/2 full screen. RUN-TIME LIBRARY ---------------- Two additions to the RTL DLLs: - support creating a String from a resource identifier - add a missing export _rtl_write TLINK ----- The following switch is not included in the manuals: /n No default libraries The IOPL and NOIOPL (control CODE segment I/O priviledge) options in the CODE statement are not supported. COMPILER -------- This compiler supports the three distinct character types specified in section r.3.6.1 of the Second Edition of "The C++ Programming Language", by Bjarne Stroustrup. This means that calls to some functions taking char which were legal and unambiguous in Borland C++ v3.1 will now cause an ambiguity error. Use of the -K2 option, casting, using the compiler option to change the default char handling, or supplying functions for the three types are some ways to resolve these errors. Another change from the October ANSI/ISO C++ draft supported is support for virtual functions differing in return type. Section 10.2 specifies that the return type for an overriding function can be a pointer or reference to any class publicly derived from the base class used as the overridden return type: struct X{}; struct Y: public X{}; class B { ... public: virtual X* xFunc(); }; class D : public B { ... public: Y* xFunc(); // now legal: returns pointer to derived class }; This compiler supports 16-bit wide characters, which increases the range of codes for the wchar_t type. Size-dependent definitions may be affected by this change. Specifically, use L"abc" for wchar_t strings, and L'a' for wchar_t characters. Enum operator overloading is also supported in this compiler. The compiler now supports the AT&T CFRONT 3.0 template function overloading resolution extensions. Note, these extensions are disabled if the strict ANSI/ISO compliance compiler switch (-A for the command line, Options|Source|Ansi for the IDE) is enabled. When searching for an exact match for template function parameters; 1) Trivial conversions are now considered exact matches. For example: template<class T> void foo(const T a) { ... } ... foo(0); // This is illegal under ANSI/ISO C++: unresolved foo(int). // However, Borland C++ now allows foo(const int) to be called. 2) Derived class pointer or references arguments are permitted to match their public base classes. For example: template<class T> class B { ... }; template<class T> class D : public B<T> { ... }; template<class T> void foo(B<T> *b) { ... } ... foo(new D<int>); // This is illegal under ANSI/ISO C++: // unresolved foo(D<int> *). // However, Borland C++ now allows // foo(B<int> *) to be called. The conversion from derived class to base class is allowed only for template parameters, non-template parameters still require exact matches. For example: class B { ... }; class D : public B { ... }; template<class T> void bar(T ignored, B *b) { ... } ... bar(0, new D); // Illegal under CFRONT 3.0, ANSI/ISO C++ and Borland C++: // unresolved external bar(int, D *), D * -> B * is not // considered an exact match. /**************************** END OF FILE ********************************/
 winworldpc.com/download/43c2bde2-82ac-e280-a118-c39a11c3a4ef/from/c3ae6ee2-8099-713d-3411-c3a6e280947e
Borland C++ v. 1.5 (5/4/1994, Borland International) Readme/What's new
Welcome to Borland C++ for OS/2 ------------------------------- This README file contains important information about Borland C++. For the latest information about Borland C++ and its accompanying programs and manuals, read this file in its entirety. For useful information on working with the Borland Debugger, see the online file README.TD in the DOC subdirectory of your Borland C++ installation. TABLE OF CONTENTS ----------------- I. How to Get Help II. Installation III. Features IV. Important Information I. HOW TO GET HELP -------------------- If you have any problems, please read this file, the online help, and other files in your DOC subdirectory, and the Borland C++ manuals first. If you still have a question and need assistance, help is available from the following sources: 1. Type GO BORLAND on the CompuServe bulletin board system for instant access to the Borland forums with their libraries of technical information and answers to common questions. If you are not a member of CompuServe, see the enclosed special offer, and write for full details on how to receive a free IntroPak containing a $15 credit toward your first month's on-line charges. 2. Check with your local software dealer or users' group. 3. Borland's TECHFAX service. Call (800) 822-4269 for a FAX catalog of entries. 4. If you have an urgent problem that cannot wait and you have sent in the license agreement that came with the package, you may call the Borland Technical Support Department at (408) 461-9133. Please have the following information ready before calling: a. Product name and serial number on your original distribution disk. Please have your serial number ready or we will be unable to process your call. b. Product version number. The version number for Borland C++ can be displayed by pressing Alt-H/A in the IDE. c. Computer brand, model, and the brands and model numbers of any additional hardware. d. Operating system and version number. (The version number can be determined by typing SYSLEVEL at the OS/2 shell prompt.) e. Contents of your CONFIG.SYS file. II. INSTALLATION ----------------- To install Borland C++, just type; A:INSTALL in an OS/2 window, assuming A: is a 3.5" floppy drive. Or click on the "Drive A" prompt on the desktop, and double-click the Install icon. You can then select installation options, or click on the install button to begin installing immediately. Please note that the install reports that 40 Mbytes are required on a full install for unpacking and help file creation. After the install is complete, only 31 Mbytes are actually used. For CD-ROM users, the RTL source files have been included and can be found in the \BCOS2\SOURCE\RTL directory. Simply copy them onto your harddisk to install. As part of updating your config.sys file, the install will add the line SET IPFC=c:\bcos2\ipfc when the line doesn't alreay exist. If config.sys already has a "SET IPFC" line, install will append c:\bcos2\ipfc to the end of this line even though IPF.exe will only look in the first directory for its support files. If you want to use the IPF support files provided by Borland, delete the first directory path from the "SET IPFC" line and reboot. For example, change SET IPFC=c:\tookit\ipfc;c:\bcos2\ipfc to SET IPFC=c:\bcos2\ipfc ("c:\bcos2" is replaced with your specified path if different). NOTE: If you do not expect to use the IBM Help Viewer to access the *.INF files and you selected them to be installed, you may delete them from the BCOS2\BIN directory and save substantial disk space. The reference files you may want to keep include TASM.INF, IPFC20.INF, IPFCEXMP.INF, and GUIREF20.INF. If you selected Borland OS/2 help files and did not install the IDE, Debugger, or Resource Workshop, you may delete the *.HLP files from the BCOS2\BIN directory to save additional disk space. III. FEATURES ------------- - A visual object Browser to view class inheritance - Support for C++ Exceptions and RTTI - Presentation Manager Custom Control library - An IDE for Presentation Manager with integrated debugging - A standalone debugger that runs under Presentation Manager - Extensive context-sensitive online help - Resource Workshop for OS/2, a tool for resource creation and editing - TCREF: A cross reference utility for assembly language programs IDE --- - Local popup menus for most IDE desktop objects: editor, transcript, project, and others - Drag & drop support from project to IDE desktop and PM to IDE desktop - Background compiling and Transfer features - A speedbar with icons for compilation, debugging, and editor actions - Easy access to all configuration options via the Settings notebook by choosing the Project|View Settings menu command - Buttons to revert to default settings in notebooks - Syntax highlighting for increased code readability - Configurable key bindings for the editor using the Editor Key Bindings setting in the Environment|Preferences subsection of the Settings notebook - Printing support under File|Print - Context-sensitive help on most objects and keywords - Extensive integrated debugging TLINK ----- - The following switches are new: /Gm Write mangled names in map file /n No default libraries The IOPL and NOIOPL (control CODE segment I/O priviledge) options in the CODE statement are no longer supported. IV. IMPORTANT INFORMATION -------------------------- This version of Borland C++ for OS/2 is designed to run under the shipping version of OS/2 v2.1 or "OS/2 for Windows" installed. OS/2 Issues ----------- - OS/2 provides a master index file you can use to access the Presentation Manager reference online help file. In order to access this index, you must add the following lines to your CONFIG.SYS file: SET PMREF=PMFUN.INF+PMGPI.INF+PMHOK.INF+PMMSG.INF+PMREL.INF+ PMWIN.INF+PMWKP.INF SET HELPNDX=EPMKWHLP.NDX Then at the OS/2 prompt type "VIEW PMREF". You can reference the entire Presentation Manager online reference from this single index. - OS/2 has problems with 64k multiples for a stack, we suggest that you try 62k multiples or less. - DosExit() utilization is not recommend in OS/2 applications. We recommend that you use exit() instead due to required RTL initialization / cleanup. Compiler -------- The following is a summary of new (or changed) compiler switches: -an Align to n: 1 = Byte, 2 = Word, 4 = Double Word boundaries. -xd Enables destructor cleanup so that destructors are called for all automatically declared objects between the scope of the catch and throw statements when an exception is thrown. Note that destructors aren't automatically called for dynamic objects and dynamic objects aren't automatically freed. -xf Expand function initilization inline. Normally, the prolog of a function with any exception handling constructs will contain a call to a run-time library function to initialize exception handling for the function. The -xf option expands this code inline in the prolog of each function providing slightly faster code execution, but at the expense of code size. This option can be used selectively for only the most time-critical functions. -xp Enables exception location information that makes available run-time identification of exceptions by providing the line numbers in the source code where the exception occurred. This lets the program query the file and line number from where a C++ exception occurred. -Hc Cache precompiled headers. Must be used with -H or -Hxxx. This option is useful when compiling more than one precompiled header. -H"xxx" Stop compiling precompiled headers at file "xxx". This must be used with -H, -Hu, or -H=filename. -R Include browser information in generated .OBJ files. ObjectBrowser reference information in OBJs includes browser information when the compiler generates .OBJ files; this lets you inspect the application using the IDE's integrated ObjectBrowser. When this option is off, you can link larger .OBJ files. This option doesn't affect execution speed, but it does affect compile time. -RT Enable run-time type information. The following is a summary of new (or changed) compiler features: - Support for ANSI C++ exception handling, structured exception handling under C, and mixed C/C++ exception handling - Additional optimizations and faster compile time - Support for ANSI C++ operator new[] and operator delete[] - Runtime Library support for the ANSI C++ string class - Support for ANSI C++ runtime type identification (RTTI) - Support for ANSI C++ new style casts dynamic_cast, static_cast, const_cast, and reinterpret_cast This compiler supports the three distinct character types specified in section r.3.6.1 of the Second Edition of "The C++ Programming Language", by Bjarne Stroustrup. This means that calls to some functions taking char which were legal and unambiguous in Borland C++ v3.1 will now cause an ambiguity error. Use of the -K2 option, casting, using the compiler option to change the default char handling, or supplying functions for the three types are some ways to resolve these errors. Another change from the October ANSI C++ draft supported is support for virtual functions differing in return type. Section 10.2 specifies that the return type for an overriding function can be a pointer or reference to any class publicly derived from the base class used as the overridden return type: struct X{}; struct Y: public X{}; class B { ... public: virtual X* xFunc(); }; class D : public B { ... public: Y* xFunc(); // now legal: returns pointer to derived class }; This compiler supports 16-bit wide characters, which increases the range of codes for the wchar_t type. Size-dependent definitions may be affected by this change. Specifically, use L"abc" for wchar_t strings, and L'a' for wchar_t characters. Enum operator overloading is also supported in this compiler. The compiler now supports the AT&T CFRONT 3.0 template function overloading resolution extensions. Note, these extensions are disabled if the strict ANSI compliance compiler switch (-A for the command line, Options|Source|Ansi for the IDE) is enabled. When searching for an exact match for template function parameters; 1) Trivial conversions are now considered exact matches. For example: template<class T> void foo(const T a) { ... } ... foo(0); // This is illegal under ANSI C++: unresolved foo(int). // However, Borland C++ now allows foo(const int) to be called. 2) Derived class pointer or references arguments are permitted to match their public base classes. For example: template<class T> class B { ... }; template<class T> class D : public B<T> { ... }; template<class T> void foo(B<T> *b) { ... } ... foo(new D<int>); // This is illegal under ANSI C++: // unresolved foo(D<int> *). // However, Borland C++ now allows // foo(B<int> *) to be called. The conversion from derived class to base class is allowed only for template parameters, non-template parameters still require exact matches. For example: class B { ... }; class D : public B { ... }; template<class T> void bar(T ignored, B *b) { ... } ... bar(0, new D); // Illegal under CFRONT 3.0, ANSI C++ and Borland C++: // unresolved external bar(int, D *), D * -> B * is not // considered an exact match. Libraries and Startup Code -------------------------- The following global variables have been renamed: Obsolete global Old name New name Header file variables ----------------------------------------- daylight _daylight time.h directvideo _directvideo conio.h environ _environ stdlib.h sys_errlist _sys_errlist errno.h sys_nerr _sys_nerr errno.h timezone _timezone time.h tzname _tzname time.h ----------------------------------------- Link with OBSOLETE.LIB to get the obsolete global variables. The old names of the following functions are available. However, the compiler will generate a warning that you are using an obsolete name. Future versions of Borland C++ might not provide support for the old function names. The following function names have been changed: Old name New name Header file ----------------------------------------- _chmod _rtl_chmod io.h _close _rtl_close io.h _creat _rtl_creat io.h _heapwalk _rtl_heapwalk malloc.h _open _rtl_open io.h _read _rtl_read io.h _write _rtl_write io.h ----------------------------------------- Changes to the Class Libraries ------------------------------ Only the version of the class library implemented with C++ templates is distributed and directly supported in Borland C++ v1.5. The class library "object-based" include files are provided in the \BCOS2\INCLUDE\CLASSLIB\OBSOLETE subdirectory. The object-based libraries themselves are not supplied, but can be built using the instructions found in the \BCOS2\SOURCE\CLASSLIB makefile (see the comments located there). Use Generate Makefile for \BCOS2\EXAMPLES\CLASSLIB samples programs for command line usage. IDE --- Differences from the Borland C++ Version 3.x interface: - Transfer tools are no longer listed under a special system menu, but are instead listed under a new Tools menu. This menu also includes all message management actions. Transfer items are installed through the Transfer section of the Settings notebook. Open the Settings notebook by choosing the Project|View Settings menu command. - The message window and modal compile dialog have been combined into the new modeless Transcript Window. This enhancement supports background compilation. - The Options menu has been replaced with the Project Settings Notebook; the notebook is accessed through the Project|View Settings menu item. The notebook contains sections and pages which correspond to the nested menus and dialogs accessed from the original Options menu. Note that the Project Settings notebook works like other notebooks in Presentation Manager: changes made to controls take effect immediately rather than pending confirmation as in dialogs; the notebook is modeless. Searching in selected text with the Settings notebook environment editor "Persistent Blocks" option set to OFF is not possible. The block is removed before the search is attempted; therefore the search will fail. Occasionally doing Help | Topic search on a valid help topic will fail on machines running the OS/2 Service pak from October 1992. Access the Help via the Help|Contents menu item. Integrated debugging: - "Return from function" under the Run menu will run the current function at full speed until it returns to the function which called it. The Breakpoints detail view keeps track of changes made to source modules containing breakpoints by inserting the new line number information along side the original breakpoint information. - Debugging a process the second time may result in old information displayed in the Breakpoints or Disassembly view if the Project Settings notebook environment preferences "Auto Save Editors" is set to OFF. Saving changed files before restarting a debugging session fixes the problem. - If you experience very slow stepping while a DOS window is open, you should set IDLE_SENSITIVITY under Settings|Session|DOS settings to a low value. This also applies to standalone debugging. Turbo Debugger GX ----------------- For useful information on working with the Borland Debugger, see the online file README.TD in the DOC subdirectory of your Borland C++ installation. DLLs ---- When creating a DLL which will be loaded by either a non-Borland built executable, or explicitly loaded by calling DosLoadModule, the global variable _multidll must be set as follows to ensure initialization of the DLL. extern int _multidll = 0; This statement should be placed globally in some module being linked into the DLL. When _multidll is set to zero, the DLL initializes itself when it is loaded by the operating system. When _multidll is set to one, executables built using Borland tools initialize the DLL after the DLL is loaded by the operating system. Under OS/2 2.1 there is no guarantee that interdependent DLL's will be initialized in the correct order. An example of interdependent DLL's would be a DLL containing a global class instance where that class' constructor makes a call to some Runtime Library (RTL) function. If the dynamic version of the RTL was linked to the DLL, the RTL DLL would need to be initialized first. By default, DLLs built using Borland tools let Borland-built executables do the initialization. This works only if the DLL was loaded implicitly when the executable was loaded. If the DLL was loaded with the kernel function DosLoadModule, the DLL would need to initialize itself by setting _multidll to one. Resource Workshop ----------------- - The text editor included in Resource Workshop is limited to ASCII representations of resources that are no greater than 32K in length. - View|Show items or View|Show identifiers may give "Too many defines to view" or "Too many items to view" message if there are more than 1800 or so items in your project. You will always get this if your project includes a header file with many items in it, such as OS2.H. Temporarily excluding such a file will allow you to use these View menu facilities. - There is no comprehensive way to import Windows resources and projects into the OS/2 version of Resource Workshop. However it is possible, under WIN-OS/2, to copy a Windows bitmap resource to the OS/2 clipboard and then paste the resource into the bitmap editor in Resource Workshop for Presentation Manager. - Due to the graphical nature of many tasks performed in Resource Workshop for Presentation Manager, there are a variety of painting and display problems that can occur as a result of the video driver being used in a particular configuration. If you encounter these types of problems, check with your video card supplier to see if there is a newer driver provided for the setup you are using. Note that SVGA driver services currently seem to have more limitations than VGA. NOTE: The ComboBox for the Controls | New dialog box is not initialized. Simply press the down arrow control to list available controls.
 winworldpc.com/download/4968c384-cb9c-5a65-11c3-a5c28fc2a3ef/from/c3ae6ee2-8099-713d-3411-c3a6e280947e
Borland C++ v. 1.0 (20/2/1993, Borland International) Readme/What's new
Welcome to Borland C++ for OS/2 ------------------------------- This README file contains important information about Borland C++. For the latest information about Borland C++ and its accompanying programs and manuals, read this file in its entirety. For useful information on working with the Borland Debugger, see the online file README.TD in the DOC subdirectory of your Borland C++ installation. TABLE OF CONTENTS ----------------- I. How to Get Help II. Installation III. Features IV. Important Information I. HOW TO GET HELP ------------------- If you have any problems, please read this file, the online help, and other files in your DOC subdirectory, and the Borland C++ manuals first. If you still have a question and need assistance, help is available from the following sources: 1. Type GO BORLAND on the CompuServe bulletin board system for instant access to the Borland forums with their libraries of technical information and answers to common questions. If you are not a member of CompuServe, see the enclosed special offer, and write for full details on how to receive a free IntroPak containing a $15 credit toward your first month's on-line charges. 2. Check with your local software dealer or users' group. 3. Borland's TECHFAX service. Call (800) 822-4269 for a FAX catalog of entries. 4. If you have an urgent problem that cannot wait and you have sent in the license agreement that came with the package, you may call the Borland Technical Support Department at (408) 461-9133. Please have the following information ready before calling: a. Product name and serial number on your original distribution disk. Please have your serial number ready or we will be unable to process your call. b. Product version number. The version number for Borland C++ can be displayed by pressing Alt-H/A in the IDE. c. Computer brand, model, and the brands and model numbers of any additional hardware. d. Operating system and version number. (The version number can be determined by typing SYSLEVEL at the OS/2 shell prompt.) e. Contents of your CONFIG.SYS file. II. INSTALLATION --------------- To install Borland C++, just type A:INSTALL in an OS/2 window, assuming A: is a 3.5" floppy drive. Or click on the "Drive A" prompt on the desktop, and double-click the Install icon. You can then select installation options, or click on the install button to begin installing immediately. If you are building a help file, and see a message regarding a missing .TAG file, you should set the IPFC environment variable to the IPFC path in this release. Edit CONFIG.SYS to include this line: SET IPFC=C:\BCOS2\IPFC Change the path to match your own installation configuration if necessary. You may already have a SET IPFC line in your CONFIG.SYS file, in which case you can add the Borland C++ path: SET IPFC=C:\OS2;C:\BCOS2\IPFC In order to perform a search on All libraries from Help it is recommended that you set the following environment variables in your CONFIG.SYS file: HELP=C:\BCOS2\BIN; Change the path to match your own installation configuration if necessary. You may already have a SET HELP line in your CONFIG.SYS file, in which case you can add the Borland C++ path: HELP=C:\OS2;C:\BCOS2\BIN; III. FEATURES ----------- - An IDE for Presentation Manager with integrated debugging - A standalone debugger that runs under Presentation Manager - Extensive context-sensitive online help - Resource Workshop for OS/2, a tool for resource creation and editing. IDE --- - Local popup menus for most IDE desktop objects: editor, transcript, project, and others - Drag and drop support from project to IDE desktop and PM to IDE desktop - Background compiling and Transfer features - A speedbar with icons for compilation, debugging, and editor actions - Easy access to all configuration options via the Settings notebook by choosing the Project|View Settings menu command - Buttons to revert to default settings in notebooks - Syntax highlighting for increased code readability - Configurable key bindings for the editor using the Editor Key Bindings setting in the Environment|Preferences subsection of the Settings notebook - Printing support under File|Print - Context-sensitive help on most objects and keywords - Extensive integrated debugging Turbo Assembler --------------- - Extended GETFIELD and SETFIELD directives TASM 3.0 for DOS let the source and target working registers remain the same for these directives, but generated useless code. When GETFIELD is used 'in place', it no longer generates the nonfunctional 'MOV target, source' instruction. Similarly, the SETFIELD 'in place' doesn't OR the source value to itself, but will ensure that those unset fields of the target register will be 0. - Added switches to select desired linker The new switches /os and /oi, combined with the existing switches /o and /op, constitute a new selection in TASM of the object format pertinent to the selected linker. The following table describes these switches: Switch Meaning ------ ------- /os The default selection; Output standard TLINK-compatible objects without overlay support /o Output standard TLINK-compatible objects with overlay support enabled /oi Output IBM linker-compatible objects (IBM's linear- executable linker) - Added a new segment attribute and uninitialized segment warning TASM 3.0 offered no way to discover if data was being inadvertently written to segments intended to be uninitialized. A new segment attribute has been added to correct this problem. In a segment directive, the attribute can be invoked by including an 'UNINIT' as part of the segment description. For example, BSS SEGMENT PUBLIC WORD UNINIT 'BSS' All data written to such a segment will produce a warning. (This warning can be disabled using the directive 'NOWARN UNI' and re-enabled with 'WARN UNI'.) Note that all uninitialized segments declared with the simplified segment directives will be declared with the UNINIT attribute. - Added PUSHSTATE and POPSTATE directives PUSHSTATE and POPSTATE let you have code that's independent of the current operating state, but doesn't affect the current operating mode. PUSHSTATE saves the current TASM state on an internal stack 16 levels deep. The actual state saved includes the following: . Current emulation version, such as T301 . Mode selection: IDEAL, MASM, QUIRKS, MASM51 . EMUL/NOEMUL switch . Current processor/coprocessor selection . MULTERRS/NOMULTERRS switch . SMART/NOSMART switch . Current radix . JUMPS/NOJUMPS switch . LOCALS/NOLOCALS switch . Current local symbol prefix POPSTATE restores the last-saved TASM state from the stack. - Added a new version name 'T301' The version name T301 is now the current default version. Put the VERSION T300 directive at the beginning of any code that conflicts with new keywords added in TASM 3.01. - .487 and P487 processor directives support IV. IMPORTANT INFORMATION ---------------------- This version of Borland C++ for OS/2 is designed to run under the shipping version of OS/2 2.0 with the Service Pak upgrade installed. You may have problems running these tools under later OS/2 versions. OS/2 Issues ----------- - OS/2 provides a master index file you can use to access the Presentation Manager reference online help file. In order to access this index, you must add the following lines to your CONFIG.SYS file: SET PMREF=PMFUN.INF+PMGPI.INF+PMHOK.INF+PMMSG.INF+PMREL.INF+PMWIN.INF+ PMWKP.INF SET HELPNDX=EPMKWHLP.NDX Then at the OS/2 prompt type "VIEW PMREF". You can reference the entire Presentation Manager online reference from this single index. Compiler -------- This compiler supports the three distinct character types specified in section r.3.6.1 of the Second Edition of "The C++ Programming Language", by Bjarne Stroustrup. This means that calls to some functions taking char which were legal and unambiguous in Borland C++ 3.1 will now cause an ambiguity error. Casting, using the compiler option to change the default char handling, or supplying functions for the three types are some ways to resolve these errors. Another change from the October ANSI C++ draft supported is support for virtual functions differing in return type. Section 10.2 specifies that the return type for an overriding function can be a pointer or reference to any class publicly derived from the base class used as the overridden return type: struct X{}; struct Y: public X{}; class B { ... public: virtual X* xFunc(); }; class D : public B { ... public: Y* xFunc(); // now legal: returns pointer to derived class }; This compiler supports 16-bit wide characters, which increases the range of codes for the wchar_t type. Size-dependent definitions may be affected by this change. Specifically, use L"abc" for wchar_t strings, and L'a' for wchar_t characters. Enum operator overloading is also supported in this compiler. The compiler now supports the AT&T CFRONT 3.0 template function overloading resolution extensions. Note, these extensions are disabled if the strict ANSI compliance compiler switch (-A for the command line, Options | Source | Ansi for the IDE) is enabled. When searching for an exact match for template function parameters; 1) Trivial conversions are now considered exact matches. For example: template<class T> void foo(const T a) { ... } ... foo(0); // This is illegal under ANSI C++: unresolved foo(int). // However, Borland C++ now allows foo(const int) to be called. 2) Derived class pointer or references arguments are permitted to match their public base classes. For example: template<class T> class B { ... }; template<class T> class D : public B<T> { ... }; template<class T> void foo(B<T> *b) { ... } ... foo(new D<int>); // This is illegal under ANSI C++: // unresolved foo(D<int> *). // However, Borland C++ now allows // foo(B<int> *) to be called. The conversion from derived class to base class is allowed only for template parameters, non-template parameters still require exact matches. For example: class B { ... }; class D : public B { ... }; template<class T> void bar(T ignored, B *b) { ... } ... bar(0, new D); // Illegal under CFRONT 3.0, ANSI C++ and Borland C++: // unresolved external bar(int, D *), D * -> B * is not // considered an exact match. IDE --- Differences from the Borland C++ Version 3.x interface: - Transfer tools are no longer listed under a special system menu, but are instead listed under a new Tools menu. This menu also includes all message management actions. Transfer items are installed through the Transfer section of the Settings notebook. Open the Settings notebook by choosing the Project|View Settings menu command. - The message window and modal compile dialog have been combined into the new modeless Transcript Window. This is an enhancement to support background compilation. - The Options menu has been replaced with the Project Settings Notebook; the notebook is accessed through the Project|View Settings menu item. The notebook contains sections and pages which correspond to the nested menus and dialogs accessed from the original Options menu. Note that the Settings notebook works like other notebooks in Presentation Manager: changes made to controls take effect immediately rather than pending confirmation as in dialogs; the notebook is modeless. Searching in selected text with the Settings notebook environment editor "Persistent Blocks" option set to OFF is not possible. The block is removed before the search is attempted; therefore the search will fail. Occasionally doing Help | Topic search on a valid help topic will fail on machines running the OS/2 Service pak from October 1992. Access the Help via the Help | Contents menu item. Integrated debugging: - "Return from function" under the Run menu will run the current function at full speed until it returns to the function which called it. The Breakpoints detail view keeps track of changes made to source modules containing breakpoints by inserting the new line number information along side the original breakpoint information. - Debugging a process the second time may result in old information displayed in the Breakpoints or Disassembly view if the Settings notebook environment preferences "Auto Save Editors" is set to OFF Saving changed files before restarting a debugging session fixes the problem. - If you experience very slow stepping while a DOS window is open, you should set IDLE_SENSITIVITY under Settings|Session|DOS settings to a low value. This also applies to standalone debugging. Turbo Debugger GX ----------------- For useful information on working with the Borland Debugger, see the online file README.TD in the DOC subdirectory of your Borland C++ installation. DLLs ---- When creating a DLL which will be loaded by either a non-Borland built executable, or explicitly loaded by calling DosLoadModule, the global variable _multidll must be set as follows to ensure initialization of the DLL. extern int _multidll = 0; This statement should be placed globally in some module being linked into the DLL. When _multidll is set to zero, the DLL initializes itself when it is loaded by the operating system. When _multidll is set to one, executables built using Borland tools initialize the DLL after the DLL is loaded by the operating system. Under OS/2 2.0 there is no guarantee that interdependent DLL's will be initialized in the correct order. An example of interdependent DLL's would be a DLL containing a global class instance where that class' constructor makes a call to some Runtime Library (RTL) function. If the dynamic version of the RTL was linked to the DLL, the RTL DLL would need to be initialized first. By default, DLLs built using Borland tools let Borland-built executables do the initialization. This works only if the DLL was loaded implicitly when the executable was loaded. If the DLL was loaded with the kernel function DosLoadModule, the DLL would need to initialize itself by setting _multidll to one. Resource Workshop ----------------- - The text editor included in Resource Workshop is limited to ASCII representations of resources that are no greater than 32K in length. - View|Show items or View|Show identifiers may give "Too many items to view" or "Too many defines to view" message if there are more than 1800 or so items in your project. You will always get this if your project includes a header file with many items in it, such as OS2.H. Temporarily excluding such a file will allow you to use these View menu facilities. - There is no comprehensive way to import Windows resources and projects into the OS/2 version of Resource Workshop. However it is possible, under WIN-OS/2, to copy a Windows bitmap resource to the OS/2 clipboard and then paste the resource into the bitmap editor in Resource Workshop for Presentation Manager. - Due to the graphical nature of many tasks performed with Resource Workshop for Presentation Manager, there are a variety of painting and display problems that occur as a result of the video driver being used in a particular config- uration. If you encounter these types of problems, check with your video card supplier to see if there is a newer driver provided for the setup you are using. Note that SVGA driver services currently seem to have more limitations than VGA.
 winworldpc.com/download/c3b0c3b8-c385-7d5a-6411-c3a5c28fc2a3/from/c3ae6ee2-8099-713d-3411-c3a6e280947e
Record updated last time on: 07/08/2023 - 05:16

Translate to...

Comments

New Link: - https://hobbes.nmsu.edu/download/pub/os2/dev/proglang/cpp/ProfessorOwl_1-08r2.zip

Add new comment