home *** CD-ROM | disk | FTP | other *** search
- ***********************************************************
- C++BUILDER 4 RELEASE NOTES
- ***********************************************************
-
- This file contains last minute information about C++Builder
- and additional helpful information about the product.
-
- TABLE OF CONTENTS
- =======================================================
-
- 1. WHERE TO FIND INFORMATION
- 1.1 Information Files
- 1.2 Online Resources
- 2. CONTACTING INPRISE
- 3. CD-ROM AND INSTALLATION DIRECTORY OVERVIEW
- 3.1 CD-ROM Directories
- 3.2 Installation Directories
- 4. UTILITY PROGRAMS
- 5. DOCUMENTATION
- 6. ISSUES
- 7. INTERNATIONAL ISSUES
-
-
- 1. WHERE TO FIND INFORMATION
- =======================================================
-
- 1.1 Information files
- ---------------------
- The following information files are included with
- C++Builder:
-
- File Information contained
- ------------------------------------------------------
- README.TXT Release notes, late-breaking issues
- INSTALL.TXT Installation requirements, support
- numbers
- DEPLOY.TXT Information about deploying C++Builder
- applications
- LICENSE.TXT C++Builder license agreement
-
- For the Borland Database Engine (BDE) and SQL Links,
- the following files are installed in the main BDE
- directory located by default in
- Program Files\Common Files\Borland Shared\BDE.
-
- File Information contained
- ------------------------------------------------------
- BDEREADME.TXT Release notes for the Borland Database
- Engine (BDE) and SQL Links
- BDEDEPLOY.TXT Information about deploying BDE and SQL
- Links with applications
-
- See the online Help file BCB4NEW.HLP for details on new
- features of C++Builder 4.
-
- 1.2 Online Resources
- --------------------
- You can get more information from any of these online
- sources:
-
- 1.2.1 World Wide Web
- --------------------
- Check Inprise's Web site regularly. The C++Builder
- Product Team will post white papers, competitive
- analyses, answers to frequently asked questions, sample
- applications, updated software, and information about new
- and existing products. You may want to check these URLs
- in particular:
-
- http://www.inprise.com/
- (Main Inprise Web site)
- http://www.inprise.com/bcppbuilder/
- (C++Builder product information)
- http://www.inprise.com/devsupport/bcppbuilder/
- (C++Builder Developer Support)
- http://www.inprise.com/newsgroups/
- (Inprise-sponsored newsgroups)
-
- 1.2.2 Newsgroups
- ----------------
- Inprise sponsors a variety of newsgroups where users
- can exchange information about Inprise development
- tools and their use. For a complete list and
- information on connecting to the Inprise news server,
- see the page at the URL:
-
- http://www.inprise.com/newsgroups/
-
- 1.2.3 FTP
- ---------
- ftp.inprise.com
- (Technical documents available by anonymous ftp.)
-
- 1.2.4 Listserv
- --------------
- To subscribe to electronic newsletters, use the
- online form at:
- http://www.inprise.com/feedback/listserv.html
- or, for Inprise's international listserver,
- http://www.inprise.com/feedback/intlist.html.
-
- 1.2.5 TECHFAX
- -------------
- 1-800-822-4269 (North America)
- (Technical documents available by fax.)
-
- 2. CONTACTING INPRISE
- =======================================================
- Inprise offers a range of support services for C++Builder
- (and other tools). For information, see the URL:
-
- http://www.inprise.com/programs/assist/
-
- For assistance outside of North America, contact your
- local Inprise representative. For a list of offices and
- distributors world-wide, see the page at the URL:
-
- http://www.inprise.com/bww/
-
- 3. CD-ROM AND INSTALLATION DIRECTORY OVERVIEW
- =======================================================
-
- 3.1 CD-ROM Directories
- ----------------------
- The C++Builder 4 CD-ROM includes the following files and
- directories.
-
- [root]
- Contains files used for installation, registration
- and text files such as the README.TXT and INSTALL.TXT:
-
-
- \IB5 Contains the InterBase 5.5 Server.
- (Professional edition and higher)
-
- \INSTALL Contains the C++Builder 4 setup program
- and related files.
-
- \ISXPRESS Contains InstallShield Express, a
- customized application deployment tool
- for C++Builder 4.
- (Professional edition and higher)
-
- \OLENT Contains OLEnterprise files.
-
- \RDEBUG Contains the files to install the
- Remote Debugger. (Enterprise edition)
-
- \RUNIMAGE Contains a complete C++Builder
- installation. All files are unpacked
- and in the default directory
- structure.
-
- \VBROKER Contains VisiBroker for C++ version 3.3.
- (Enterprise edition)
-
- \NETSCAPE Netscape Navigator 4.5.
-
- \IE40 Microsoft Internet Explorer 4.0.
-
- \WORKSHOP Contains Resource Workshop version 4.5,
- a 16-bit resource editor.
-
- 3.2 Installation Directories
- ----------------------------
- These are the default directories (and their contents)
- associated with a full C++Builder 4 installation. Some modules
- do not come with all editions of C++Builder and these are
- noted where applicable.
-
- \Program Files\Borland\CBuilder4\Bin
- (C++Builder system files)
-
- \Program Files\Borland\CBuilder4\Doc
- (.INT files with object declarations for objects
- without source files and the BDE API)
-
- \Program Files\Borland\CBuilder4\Examples
- (C++Builder demo programs)
-
- \Program Files\Borland\CBuilder4\Help
- (C++Builder online Help files)
-
- \Program Files\Borland\CBuilder4\Imports
- (user-created files the compiler needs to find)
-
- \Program Files\Borland\CBuilder4\Include
- (C++Builder header and source files)
-
- \Program Files\Borland\CBuilder4\Lib
- (C++Builder library files)
-
- \Program Files\Borland\CBuilder4\Objrepos
- (Object Repository)
-
- \Program Files\Borland\CBuilder4\Ocx
- (Third-party OCX files)
-
- \Program Files\Borland\CBuilder4\Projects
- (Location for storing projects)
-
- \Program Files\Borland\CBuilder4\Source
- (VCL source .PAS files in Professional edition and
- higher)
-
- \Program Files\Borland\Database Desktop
- (Database Desktop utility in Professional edition
- and higher)
-
- \Program Files\Common Files\Borland Shared\BDE
- (Borland Database Engine system files; SQL
- Links system files in Professional edition and
- higher)
-
- \Program Files\Common Files\Borland Shared\Data
- (Sample dBASE and Paradox tables in Professional
- edition and higher)
-
- \Program Files\Common Files\Borland Shared\Debugger
- (Debugger files)
-
- \Program Files\Common Files\Borland Shared\Images
- (Sample image files, button glyphs, splash screen
- images, more)
-
- \Program Files\Common Files\Borland Shared\SampleDictionary
- (Sample data dictionary in Professional edition and
- higher)
-
- \Program Files\Common Files\Borland Shared\MSHelp
- (Microsoft SDK Help files)
-
- \Program Files\Borland\vbroker
- (VisiBroker for CORBA support in Enterprise edition)
-
- \Runimage\CBuilder4\Windows
- (Windows system files)
-
- 4. UTILITY PROGRAMS
- =======================================================
- C++Builder 4 comes with a number of helper, utility
- applications including:
-
- Resource compiler
- BRCC32.EXE, in ..\CBuilder4\Bin
-
- Database Explorer (Pro Edition) or
- SQL Explorer (Enterprise edition)
- DBEXPLOR.EXE, in ..\CBuilder4\Bin
-
- Database Desktop (Pro edition or higher)
- DBD32.EXE, in \Program Files\Borland\Database Desktop
-
- GREP
- GREP.EXE, in ..\CBuilder4\Bin
-
- Image Editor
- IMAGEDIT.EXE, in ..\CBuilder4\Bin
-
- Make utility
- MAKE.EXE, in ..\CBuilder4\Bin
-
- MTS installation (Enterprise edition)
- MTSINST.EXE, in ..\CBuilder4\Bin
-
- OpenHelp Help customization tool
- (Pro edition or higher)
- OH.EXE, in ..\CBuilder4\Bin
-
- Package Component Editor
- (Pro edition or higher)
- PCE.EXE, in ..\CBuilder4\Bin
-
- Project Conversion utility
- IDETOBPR.EXE, in ..\CBuilder4\Bin
-
- SQL Monitor (Enterprise edition)
- SQLMON.EXE, in ..\CBuilder4\Bin
-
- Type Library Wrapper File Generator
- TLIBIMP.EXE, in ..\CBuilder4\Bin
-
- TDump
- TDUMP.EXE, in ..\CBuilder4\Bin
-
- TRegSrvr
- TREGSRVR.EXE, in ..\CBuilder4\Bin
-
- Visual C++ Conversion Wizard
- VCTOBPRU.EXE, in ..\CBuilder4\Bin
-
- For information on more tools, see BCB4TOOL.HLP.
-
- 5. DOCUMENTATION
- =======================================================
- The C++Builder 4 on-line documentation consists primarily
- of the following Windows Help files:
-
- File Purpose
- ------------ -----------------------------------
- BCB4.HLP Main C++Builder Help
- BCB4COM.HLP Developing COM-based Applications
- BCB4CW.HLP Creating Custom Components
- BCB4DAP.HLP Writing Distributed Applications
- BCB4DBD.HLP Developing Database Applications
- BCB4ERRS.HLP Error Messages and Warnings
- BCB4LANG.HLP C++Builder Language Guide
- BCB4NEW.HLP What's New and Upgrading to C++Builder 4
- BCB4PROG.HLP Programming with C++Builder
- BCB4RTL.HLP C Runtime Library Reference
- BCB4SCL.HLP Standard C++ Library
- BCB4VCL.HLP VCL Reference
- BCB4TOOL.HLP Command-line Tools
- DEL4OP.HLP Object Pascal Reference
- OPENHELP.HLP Customizing Help
-
- Refer to BCB4NEW.HLP for a list of new features.
- Read "Upgrading to C++Builder 4" in BCB4NEW.HLP for
- information about compatibility with previous releases.
- Look in the Help directory for other related Help files.
-
- 6. ISSUES
- =======================================================
- Following are issues of interest to C++Builder
- developers.
-
- Installing on Windows 98
- ------------------------
- You may have problems installing on Windows 98 when
- using the Browse button to change directories with some
- Client for NetWare Drivers. For information, refer to the
- knowledgebase document Q102400 at www.installshield.com.
-
- Using COM
- ---------
- Console-mode clients must include VCL support in order
- to talk to DCOM servers built in C++Builder.
-
- BORDBK41.DLL Missing or Not Registered
- --------------------------------------
- If you do not reboot your computer after installation,
- you may see a message stating that BORDBK41.DLL is
- missing or not registered when you build a blank form.
- Reboot the computer. If you still receive the message,
- manually register the DLL using TRegSvr.exe in the
- Bin directory:
-
- TREGSVR <path to BORDBK41.DLL>
-
- The default path is
-
- C:\Program Files\Common Files\Borland Shared\Debugger\BORDBK41.DLL
-
- Using ClassExplorer
- -------------------
- ClassExplorer, by design, shows information on classes found
- in header files that you include in your project within
- double quotes. To see information in classes in headers
- included within angle brackets, change the angle brackets
- to double quotes.
-
- Uninstalling Delphi
- -------------------
- You can run Delphi and C++Builder on the same computer.
- If you uninstall Delphi after installing C++Builder,
- however, all .BPL files residing in the Windows system
- directory will be deleted including those you need
- for C++Builder.
-
- After uninstalling Delphi, you'll need to recopy the .BPL
- files from the C++Builder CD. Copy all BPL files (*.BPL)
- from Runimage\CBuilder4\Windows\System32 and put them in
- your \Windows\System (Windows 95 and 98) or \Winnt\System32
- (Windows NT) directory.
-
- Templates
- ---------
- Member template constructors cannot be made "explicit".
-
- Calling Member Functions using Object References
- ------------------------------------------------
- For properties that return an object by reference using a
- getter function, you cannot then call a member function
- using that object reference directly. This happens if
- member functions are out of line, and if the property's
- type size is greater than 4 bytes.
-
- Example:
-
- class foo {
- public:
- foo() {}
- void __fastcall method();
- };
-
- void __fastcall foo::method() { }
-
- class bar {
- public:
- bar() { }
- foo FProp;
- foo& __fastcall GetProp();
- __property foo& Prop = {read = GetProp};
- };
-
- foo& __fastcall bar::GetProp() { return FProp; }
-
- int main() //this does not work
- {
- bar x;
- x.Prop.method();
- }
-
- You need to assign the result of the property to a local
- variable, and then call the method on that local variable.
- To fix this, rewrite main as follows:
-
- int main() //this works now
- {
- bar x;
- foo &temp = x.Prop;
- temp.method();
- }
-
- Passing Standard C Functions
- ----------------------------
- When calling algorithm functions in the standard C++
- library, standard C functions passed as function
- pointers must use the qualifier std::.
-
- Example:
-
- vector<double> vd;
- vector<string> vs;
-
- // will NOT work:
- transform(vs.begin(), vs.end(), vd.begin(), atof);
- // will work:
- transform(vs.begin(), vs.end(), vd.begin(), std::atof);
-
- Upgrading C++Builder 3 COM Server Projects
- ------------------------------------------
- When upgrading COM server projects to C++Builder 4,
- you must regenerate the server's Type Library and
- auto-generated C++ files, and refresh the server's
- implementation files, as follows:
-
- 1. Open the COM server project in C++Builder 4.0.
- 2. Choose View|Type Library.
- 3. Select the primary coclass node in the tree view.
- 4. Select the Implements page.
- 5. Set focus to the primary interface in the table view
- 6. Right-click and change any flag (such as 'default').
- IMPORTANT:
- Now right-click and change it back to the way it was!
- 7. Choose File|Save All (this forces the refresh).
- 8. Choose Project|Build All.
-
- Changes to Import ActiveX Control
- ---------------------------------
- A separate C++ file (and header) is now generated for
- use as the primary import file when adding ActiveX
- controls to the C++Builder component palette.
- This is named libname_OCX.CPP (libname_OCX.H).
-
- In C++Builder 3.0, the word 'Proxy' was always added
- to the internal coclass names of the control. This is
- no longer done. Before opening C++Builder 3 projects
- that use imported controls, you must import the controls
- into C++Builder 4. If you have existing projects that
- use imported controls whose VCL classname includes the
- appended 'Proxy', add the word 'Proxy' to the
- classnames when importing the controls so references
- in code will still be valid.
-
- Be sure that all references to the control's wrapper
- files (*_TLB) reference the newly generated files and
- not out-of-date ones. The new source files are stored
- in the Imports directory by default.
-
- The unit.cpp associated with the form on which the
- control component is used will have a statement like:
-
- #pragma link "libname_TLB"
-
- You can remove that line because the file will be
- updated automatically with
-
- #pragma link "libname_OCX"
-
- after saving all, then rebuilding the project.
-
- Multiple Versions of VisiBroker (Enterprise edition)
- ----------------------------------------------------
- As a general rule, you should only install one version
- of the ORB runtime at a time (see the VisiBroker release
- notes for details).
-
- You can install multiple versions of VisiBroker on
- the same computer (for example, if you install both
- C++Builder and JBuilder) only if you follow these rules:
-
- 1. An application selects the ORB runtime libraries
- when started based on the PATH environment
- property. Be sure that each application uses the
- appropriate PATH so that it loads the correct ORB.
-
- 2. Certain properties are based on registry settings
- set during installation. If distinct applications
- need to run simultaneously with different registry
- settings for OSAGENT_PORT or VBROKER_ADM: either
- (a) reset the registry values using vregedit.exe
- before starting each application, or (b) override
- these settings using an environment variable or
- command-line option when starting each application.
-
- If these rules are not followed, you may encounter a memory
- exception when compiling IDL files in C++Builder (idl2cpp).
-
- Microsoft Transaction Server (MTS) Issues
- -----------------------------------------
- If Microsoft Transaction Server (MTS) is installed
- before C++Builder 4, you must set MTS POOLING to
- true in the Borland Database Engine (BDE) configuration
- file. Use the BDE Administator to do this. The MTS POOLING
- setting is in the System/Init area of the configuration.
- This setting enables the BDE to use MTS pooling, improving
- the initial connection time when opening a database and
- allowing BDE database connections to participate in MTS
- transactions.
-
- If MTS is installed after C++Builder 4, you must perform
- the following steps:
-
- 1. Copy DISP.DLL from the RUNIMAGE directory on the
- C++Builder CD into the BDE directory on the host
- computer.
-
- 2. Issue the following command:
- REGSVR32 <BDE directory>\DISP.DLL
-
- 3. In Transaction Server Explorer, install BDE-MTS
- package:
- a. Right-click on Packages Installed.
- b. Choose New|Package.
- c. Choose Install pre-built packages.
- d. Add the file DISP.PAK from the BDE directory.
-
- 4. Set the value of MTS POOLING to true in the
- System/Init section of the BDE configuration.
-
- Oracle8
- -------
- When working with MTS, OBJECT MODE (Oracle8 driver in
- BDE configuration) should be set to false.
-
- Partition tables are not supported.
-
- TDBGrid may have difficulty displaying data when the
- associated dataset consists of tables nested too deeply
- (generally, five or more levels of nesting).
-
- Oracle8 client does not work correctly on Windows 98.
- Attempts to use client utilities raises a dialog box:
- "Some features of Oracle Version 8 may not run
- correctly in Windows 98. For possible updates please
- check the Oracle web site". C++Builder displays the BDE
- error "Cannot load driver".
-
- The following tools do not fully support Oracle8
- object field types:
-
- Database Desktop
- Data Pump
- QuickReport components
- TeeChart component
- DataSetTableProducer and QueryTableProducer
- SQL Builder
- Decision Cube components
- Data dictionary
- Database Explorer
- Database Form Wizard
-
- Connection Components and WinSock 2
- -----------------------------------
- TSocketConnection, TMidasConnection, ScktSrvr, and
- ScktSrvc all require WinSock 2. WinSock 2 is installed
- with Windows 98 and NT. For Windows 95, download
- WinSock 2 from the Microsoft Web site.
-
- References to VCL.LIB
- ---------------------
- Standard Version Only: Developers who are upgrading
- C++Builder 1 projects or those who write their own
- makefiles may encounter linker errors if the makefile
- uses VCL.LIB.
-
- If you are using the Standard edition of C++Builder 4,
- do not use the library called VCL.LIB. Replace all
- references to VCL.LIB with vcl40.lib, vclx40.lib,
- dclocx40.lib, and bcbsmp40.lib.
-
- For example, change the following line in C++Builder 1
- makefiles:
-
- ALLLIB = $(LIBFILES) vcl.lib import32.lib cp32mt.lib
-
- to
-
- ALLLIB = $(LIBFILES) vcl40.lib vclx40.lib dclocx40.lib
- bcbsmp40.lib import32.lib cp32mt.lib
-
- Upgrading OWL Projects
- ----------------------
- OWL classes in C++Builder are now placed in the
- OWL namespace. Make sure that derived OWL classes
- are in that namespace when you compile. For example,
- if you have declarations like this in your source:
-
- class _OWLCLASS TBitmap;
-
- you must wrap them in a namespace declaration:
-
- namespace OWL
- {
- class _OWLCLASS TBitmap;
- };
-
- In addition, you may need to adjust the resource
- include path in a project converted by IDETOBPR.
- After loading the converted BPR file, invoke
- Project|View makefile, and search for RFLAGS and
- add the OWLFILES path $(BCB)\INCLUDE\OWLFILES
- to that line.
-
- Note that references to $(BCB)\INCLUDE\OBSOLETE
- in the Help system should be changed to
- $(BCB)\INCLUDE\OWLFILES.
-
- Addition to the Developer's Guide
- ---------------------------------
- For component writers: If you want to use components
- written in Delphi in C++Builder, you need to explicitly
- generate unique types to the HPP (see "Declaring Types"
- in Del4OP.HLP).
-
- 1. Use $NODEFINE on the unique type symbol
- 2. Use $HPPEMIT to output a suitable C++ type definition
-
- For example, consider the following Object Pascal code:
-
- type
- Temperature = type double;
-
- The proper way to handle this is:
-
- type
- Temperature = type double;
- (*$NODEFINE Temperature*)
- (*$HPPEMIT 'typedef double Temperature'*)
-
- $HPPEMIT directives are output into the 'user supplied'
- section at the top of the HPP in the order in which they are
- encountered in the Pascal file. There is no way to emit
- text at a particular point in the HPP file.
-
- Addition to VCTOBPR Documentation
- ---------------------------------
- Note the following when using the Microsoft Visual C++
- Project Conversion Utility:
-
- Before converting a Visual C++ project (version 5), be
- sure to move local source file options to the global options
- set for the target. Otherwise, the local options will be
- lost.
-
- Before converting your Visual C++ project, make sure that
- the correct output directory is specified in the
- General page of the Project|Settings.
-
- When converting a Visual C++ project, you also need to
- recompile all OBJ files in C++Builder.
-
- 7. INTERNATIONAL ISSUES
- =======================================================
-
- Menu Shortcut Conflicts
- ------------------------
- Menu shortcuts in the IDE may conflict with system
- shortcuts and international character key
- combinations. If you want to disable the Ctrl+Alt hot
- keys in the IDE, set this string registry key:
-
- HKEY_CURRENT_USER\Software\Borland\Editor\Options\
- NoCtrlAltKeys to "1"
-
- Perl-Compatible Regular Expressions
- -----------------------------------
- For Perl-compatible regular expressions to support locales,
- you must define __USELOCALES__:
-
- 1. Copy maketables.c from
- \Runimage\CBuilder4\Source\RTL\source\pcre
- to your project directory.
- 2. Add maketables.c to your project.
- 3. Choose Project|Options. On the Directories/Conditionals
- page, add __USELOCALES__ to the Conditional defines.
-
- toupper() and tolower()
- -----------------------
- If the current locale is not the "C" locale, toupper() and
- tolower() may return incorrect results. To ensure correct
- results, typecast to an unsigned char. For example:
-
- int c = toupper('a'); == int c = (unsigned char) toupper('a');
-
-
- =======================================================
- Unless otherwise noted, all materials provided in this
- release are Copyright 1983 - 1999 by Inprise
- Corporation.
- ======================= END ===========================
-
-