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 |
|
Comments
Martin Iturbide
Mon, 07/08/2023 - 04:43
Permalink
New Link:
Add new comment