=============================================== C++BUILDER 5 TRIAL RELEASE NOTES =============================================== This file contains important supplementary and late-breaking information that may not appear in the main product documentation. We recommend that you read this file in its entirety. This document may contain references to features that are not included in the Trial edition. Please ignore these items, as well as the edition markings ("Enterprise, Professional, Standard", etc.) that are contained in this and other documentation. For information on new features in this release, choose "What's New" in the online Help contents. **** IMPORTANT **** Distributing applications generated with this Trial version is prohibited. CONTENTS =============================================== -- OTHER RELEASE NOTES INCLUDED WITH THIS PRODUCT -- ABOUT EDITING THE WINDOWS REGISTRY -- THIRD-PARTY PRODUCT NOTES AND KNOWN ISSUES -- KNOWN ISSUES IN THIS RELEASE -- ADDITIONAL COMPATIBILITY NOTES -- ONLINE HELP OMISSIONS, CORRECTIONS, AND CLARIFICATIONS -- PRODUCT INFORMATION ON THE WEB OTHER RELEASE NOTES INCLUDED WITH THIS PRODUCT =============================================== INSTALL.TXT contains system requirements and product installation information. DEPLOY.TXT contains information about redistributing your applications. LICENSE.TXT contains information on licensing allowances and limitations for this product and other Inprise software that is bundled with it. The three text files listed above, along with this file, are installed to your main product directory (default: c:\Program Files\Borland\CBuilder5). You can also find detailed information about new features and compatibility issues in BCB5NEW.HLP, which is part of the main online Help system (look for "What's New" in the Help contents or index). BDEREADME.TXT, BDEINST.TXT and BDEDEPLOY.TXT contain release notes, installation, and deployment information about the Borland Database Engine (BDE) and Borland SQL Links products. These files are located in your main BDE directory (installation default: c:\Program Files\Common Files\Borland Shared\Bde). IMPORTANT: Any BDE-related information in this README.TXT overrides any corresponding information provided in the BDE release notes. Additional notes about existing issues with BDE and utility applications supplied with BDE are covered in the KNOWN ISSUES section later in this document. ABOUT EDITING THE WINDOWS REGISTRY =============================================== Warning: Registry edits are performed at your own risk. Several items in this document and in other parts of the documentation that accompany this product describe how to edit your Windows registry. In most cases, we recommend that you use the Microsoft Regedit tool to perform your editing. Whatever tool you use, however, you should, before making any edits, make backups of your registry and thoroughly familiarize yourself with the editing tool and the registry editing process. The registry is a critical component of your operating system, and any mistakes made while editing it can cause your machine to stop functioning. THIRD-PARTY PRODUCT NOTES AND KNOWN ISSUES =============================================== The following items describe issues and problems you may encounter when using this product with other tools and applications. Additional third-party and external application issues may also appear in the KNOWN ISSUES section. Microsoft ImageList common control and video drivers ----------------------------------------------- Some older video drivers (S3 Virge GX, Diamond Viper, Riva TNT, Matrox Millennium, and others) have trouble handling the quantity of images that the component palette places in its internal ImageList control. This can cause the component icons to appear shifted or corrupted in the IDE component palette. The solution is to contact your video card vendor for an updated video driver. At the time of this writing, all of the video drivers known to exhibit problems with the Microsoft ImageList control have been updated with fixes by the video card vendors. You can also work around this ImageList problem by reducing or disabling video hardware acceleration in your Windows configuration settings. For instructions, consult your operating system and video hardware documentation. If IDL2CPP won't start ----------------------------------------------- (Enterprise and Professional editions only) If an older version of the JavaSoft JRE is installed on your machine (if, for example, you installed VisiBroker with Delphi 5), you may receive an error message when attempting to run the command-line application IDL2CPP. Cause: The older JRE is probably still referenced on your path. Solution: Change your path to point to the new Java 1.2 JRE installed with C++Builder 5. Microsoft Transaction Server (MTS) ----------------------------------------------- (Enterprise and Professional editions only) If MTS is installed after this product has been installed, additional steps must be taken to enable use of the BDE as a resource dispenser (to pool database connections): 1. Copy DISP.DLL from the RUNIMAGE directory on your product CD into the BDE directory on the host computer. 2. Issue the following command: REGSVR32 \DISP.DLL 3. In Transaction Server Explorer, install the BDE-MTS package: a. Right-click on Packages Installed. b. Choose New | Package. c. Choose Install prebuilt packages. d. Add 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. Microsoft icon cache prevents icon updating ----------------------------------------------- If running this product on a Windows 95 or 98 machine on which an earlier version of the product was previously installed (even if it is no longer present), the earlier version's icon set may persist in its association to applications for this product, overriding the new icon set. This is a known problem with Microsoft's icon cache updating mechanism on Windows 95/98. To read about the problem and its solution: 1. Visit the Microsoft KnowledgeBase at http://support.microsoft.com/search/default.asp 2. Choose Search All Microsoft Products from the listbox. 3. Choose the "Keywords" option. 4. In Search Options (lower part of the page), choose to search against Titles. 5. Type the phrase "icons randomly change" (no quotes) into the Question field. The search should yield a number of article titles, any of which should lead you to a resolution. IntelliMouse driver v2.2 ----------------------------------------------- Version 2.2 of the Microsoft IntelliMouse driver writes an invalid value to the registry when it is installed. This default value can cause some applications, including this product, Outlook Express, and Windows Explorer, to crash. To correct the problem: 1. Use Regedit to locate the key HKEY_USERS\.Default\Control Panel\ Microsoft Input Devices\Mouse 2. If the value of TrayIcon is "ON", edit the value to make it "TRUE" ("FALSE" works as well). ODBC certification ----------------------------------------------- (Enterprise and Professional editions only) The following ODBC drivers are certified for use with this product and BDE. ODBC Driver Manager 3.5 Fully certified drivers: ACCESS (Microsoft 3.40-Access 95 and 97) FOXPRO (Microsoft 3.40) MSSQL Server (Microsoft 3.00-Server version 6.5) MSSQL Server (Intersolv 3.01-Server version 6.5) ORACLE 7 (Intersolv 3.01-Server version 7.3) Certified for basic functionality: INFORMIX (Intersolv 3.01 - Server version 7.20 and 9.11) DB2 (IBMv5 client 6/98 - No driver version info available: tested against 2.12 and 5.0(UDB) server SYBASE (Intersolv 3.01 - Server version 11.02) ODBC Driver Manager 3.51 Fully certified drivers: ACCESS (Microsoft 3.51-Access 95 and 97) FOXPRO (Microsoft 3.51) MSSQL Server (Microsoft 3.6 - Server version 6.5 and 7.0) MSSQL Server (Intersolv 3.11 - Server version 6.5 and 7.0) ORACLE7 (Intersolv 3.11 - Server version 7.3) Certified for basic functionality: DB2 (IBMv5 client 6/98 - No driver version info available: tested against 2.12 and 5.0(UDB) server SYBASE (Intersolv 3.11 - Server version 11.02) ORACLE8 (Intersolv 3.11 - Server version 7.3 and 8.04) Microsoft rich edit control in Asian locales ----------------------------------------------- The Microsoft rich edit control may not be able to save eight-bit European extended characters when running under Asian (multibyte) versions of Windows 2000. Using the Global IME under Windows 95 and 98 ----------------------------------------------- If you are using an Asian (multibyte) version of Windows 95 or 98 and you install the Global IME, you may have trouble running programs in debug mode. Specifically, you may get access violations when you quit the program (by choosing Run|Reset) after a runtime exception. You can avoid this problem by adjusting your Windows settings as follows: From the Control Panel, select Keyboard|Input Locales, uncheck "Enable indicator on taskbar," and click OK. KNOWN ISSUES IN THIS RELEASE =============================================== Header file optimization and failed builds ----------------------------------------------- (Enterprise and Professional editions only) If a build fails with "can't find symbol" errors or with errors that suggest that structures can't be defined, you may need to add the following: NO_WIN32_LEAN_AND_MEAN to your project defines. This forces the .HPP files in your project to include more of the Win32 header files, and should correct the build errors. Such errors may be encountered if your project includes a Pascal component that uses structures from the ActiveX or shell object libraries ACTIVEX.HPP, SHLOBJ.HPP, or URLMON.HPP. (Structures were removed from these files to reduce overall build times). Type Library import issue ----------------------------------------------- (Enterprise and Professional editions only) Certain servers export properties which, at the COM level, are arrays of VARIANT. These servers, when imported in C++Builder, cannot be given VCL-style properties because the getters and setters are of inconsistent types: arrays TVariant and TVariantInParam, respectively. (The getters and setters themselves will work without problem.) The importer unfortunately attempts to generate these VCL properties, and the resulting code fails to compile. An example: 1. Select Project|Import type library. 2. Click Add. 3. Select the Excel8.olb type library. 4. Install the components into the default user package. 5. Compile the package. Result: //[C++ Error] Excel_OCX.h(2186): E2347 Parameter mismatch in read access specifier of property Range //[C++ Error] Excel_OCX.h(4141): E2347 Parameter mismatch in read access specifier of property Range //[C++ Error] Excel_OCX.h(4611): E2347 Parameter mismatch in read access specifier of property Range BDE/COM+ limitation ----------------------------------------------- (Enterprise and Professional editions only) There is no resource dispenser for the BDE under COM+. Using PACKAGE to export forms and datamodules ----------------------------------------------- Using the class modifier PACKAGE to export forms and datamodules prevents correct object creation when not used in a forward declaration. Workaround: Use the PACKAGE modifier only in a forward declaration: class PACKAGE TDataModule1; class TDataModule1 : public TDataModule SelectDirectory and inaccessible drives ----------------------------------------------- If a control uses SelectDirectory (filectrl.hpp/.pas) to access a drive on a Windows NT/2000 system, and the drive is inaccessible (e.g., the control attempts to access drive A, and no disk is in the drive), two system error messages are generated. In addition, if a Hint is attached to the control and the Hint is visible when the control is activated, the Hint text will appear in the title bar of the first error message. On Windows 95/98 systems, only one "drive not ready" error message appears, and the Hint text is not picked up. CodeGuard and custom packages ----------------------------------------------- (Enterprise and Professional editions only) We strongly recommend the practice of building and linking custom packages using the dynamic runtime libraries (RTL). However, if you have reason to use the static RTL when creating a package, the package should be CodeGuarded IF the application using the package is CodeGuarded. Otherwise, the package will, when used with other CodeGuarded elements, generate a Borland Memory Manager (BORLNDMM.DLL) warning. If you choose "yes" in the warning dialog, false leaks will be reported. If you choose "no", memory will not be tracked for leaks from that point onward, though CodeGuard will otherwise continue to operate normally. Windows2000 date issues ----------------------------------------------- Windows 2000 uses the short date format of "m/d/yyyy". Previous Windows versions used the "m/d/yy" format. If a two-digit date is required, the value of the variable "ShortDateFormat" may be set programmatically to "m/d/yy". Also, the short date format for Windows2000 may be altered by selecting Regional Settings in Control Panel. Such system date defaults and modifications should be considered carefully when handling any dates, but most particularly when using the EncodeDate function of SysUtils. Providing this function a two-digit year may generate unexpected results. For instance, passing the results of EncodeDate("96, 7, 11"); to DateToStr will yield the string "7/11/0096" instead of "7/11/1996", as might be expected. Integrated Translation Environment (ITE) issues ----------------------------------------------- (Enterprise edition only) If you make a copy of the directory that contains your main project group, you should manually edit the copied BPR file. Find the line in the BPR file that says RootDir=[directorypath] and either replace [directorypath] with the correct path or simply delete [directorypath] (leaving "RootDir=" in place); if you delete [directorypath], the ITE tools will query you for a new root directory the next time you access the project. Under Asian versions of Windows 2000, limitations of the Windows rich edit control prevent the multiline editor from correctly saving eight-bit European extended characters. (Also see earlier note regarding Asian Locales in the Third Party Products section.) The Resource DLL wizard requires a distinct two- or three-letter file extension for each translated version of a project it maintains. For some languages that are written in both Latin and Cyrillic characters, however, Windows 2000 uses the same default extension regardless of the character set. For example, Uzbek in Latin characters (locale ID 443) and Uzbek in Cyrillic (locale ID 843) both get the extension UZB. If you want to maintain both Latin and Cyrillic versions for such a language, change the extension for one of the translations when you run the Resource DLL wizard. ADO issues ----------------------------------------------- (Enterprise and Professional editions only) When using TADOTable or TADODataSet, an error may occur when retrieving a list of table names from Microsoft SQL Server 6.5. To correct the problem, you must install the latest SQL Server 6.5 Service Pack (currently 5a), or update the system catalog as described in the MDACREADME.TXT file that accompanies MDAC 2.1. When using the Filter property on the ADO dataset components, ADO requires a space between operators and field names. For example, field>0 fails, field > 0 works. You cannot open tables or procedures that contain mixed case names on Oracle servers unless the names containing lower case letters are enclosed in quotation marks. Affects ADODataSet, ADOCommand, ADOTable, and ADOStoredProc objects. The IndexName and Seek methods of TADODataSet currently only work with the Microsoft Jet 4.0 provider when using a database file created with Access 2000. The Oracle provider included with the MDAC runtime does not support Oracle 8 datatypes (CLOB, BLOB, NVARCHAR2, NCHAR, etc.). When using the Merant (Informix 7, 9) provider, MSADO15.DLL generates an AV when working with Stored Procedure parameters. ADO does not support case-sensitive filters or find operations. Because of this, the FilterOptions and LocateOptions on the ADO dataset components do not respect the case sensitive option and always return case-insensitive results. When opening tables or stored procedures on an Oracle server, you must put double quotes around any mixed case names as required by the server ("TableName"). When using the ADO Dataset components on a MIDAS application server, ensure that the Active property is set to false at design time to ensure that any Refresh after an update will return the correct data. When using the TParameters::CreateParameters method, ADO requires that the size parameter be set to a value greater than zero if the value parameter is null. When using the Microsoft Jet 3.51 provider, an error will occur if you bind values to boolean columns using ftBoolean. The problem is corrected in the 4.0 provider. You can bind the parameters as ftInteger to workaround the problem. When using the pfXML option with the TADODataSet.SaveToFile method, you must first install version 5.0 of Internet Explorer in order to reload the data. The XML parser which is required to interpret the data is not included with the 2.1 MDAC runtime. MIDAS\InternetExpress ----------------------------------------------- (Enterprise edition only) There is a known design-time problem when building an Internet Express application that uses a local provider: Each time the project is reloaded, the XMLBroker Connected property is reset to False, and you must manually reset it to True. When a MIDAS server will not shut down as expected: A client Web application may not always be able to shut down a MIDAS server launched via an HTTP connection or via DCOM from an InternetExpress client unless the DCOM user account is set to "Interactive User" on the server machine. To set this permission, run DCOMCNFG.EXE on the server machine, choose your MIDAS server from among the listed Applications, press Properties, then Identities, and select Interactive User. In subsequent sessions, the server may be shut down as expected. "Invalid Filename" is returned trying to Activate a ClientDataSet when: -- A MIDAS server has a provider located on a Novell network; or -- A ClientDataSet attempts to connect to a MIDAS server on another machine. The solution to both of these situations is the same as that described in the previous note (set the MIDAS server Application Identity to "Interactive User"). The Netscape browser does not support XML Islands, and, as a result, will crash with an out-of-memory error when the InternetExpress application accesses MIDAS data with a very large data packet. This behavior also occurs if using Internet Explorer without XML Islands support (if using Islands, it does not occur). Current versions of the Netscape browser do not support Unicode. Thus, if you input DBCS characters into a Dataset field, the characters will not display correctly in a Netscape browser. This problem does not occur in Internet Explorer. InternetExpress clients accessing multibyte character set (MBCS) data from a MIDAS server will receive the error ":name not found in rowset" unless the MIDAS server is running on an MBCS operating system. MIDAS servers and NT ----------------------------------------------- (Enterprise edition only) When activating or running a MIDAS server from the IDE or a Web server on a Windows NT machine, you may receive the the following error message: "The dynamic link library BORLNDMM.DLL could not be found in the specified path." To fix this problem: -- Add the path to BORLNDMM.DLL and CC3250MT.DLL to your System path; or -- Copy the two files above to a directory already specified in your System path; or -- Turn off "Dynamic RTL" on the MIDAS server's Project|Options|Linker tab. ActiveX imports ----------------------------------------------- (Enterprise and Professional editions only) Note: This problem occurs only on machines running Windows 98. Importing certain OLE servers when running this product under Windows 98 will result in the generation of packages with invalid bitmaps. These bitmaps will be replaced with the default three-object icon when the package is installed on the component palette. To get the correct icons, re-import the server under Windows NT and use the .dcr generated by that import, rather than the .dcr generated under Windows 98, when installing the package onto the palette. Innocuous VCTOBPR warning ----------------------------------------------- If you convert an ATL file using the VCTOBPR utility, a message box informs you that the file BCBATL.CPP will be added to your project. The message is incorrectly identified as a "warning" when, in fact, it is informational only. Frames ----------------------------------------------- Multilevel references and indirect event calls are not automatically generated in nested frames. Such multilevel functionality must be coded separately. When creating templates from frames make sure the frame source is saved before creating the template or adding the frame to the palette. Doing so will avoid later problems if the frame is saved under a different name. When using TChart components and frames on the same form, changes to the components are not inherited from frame to frame. Recommendation: Do not change TChart component settings when using the components on forms with frames. Cached updates and master-detail relationships ----------------------------------------------- (Enterprise and Professional editions only) Cached Updates cannot be used effectively with TQuery components when doing master-detail links (DataSource property). This is because the detail query is reexecuted each time the master record pointer moves. BLOB limitations ----------------------------------------------- (Enterprise and Professional editions only) When using ODBC, BLOB size is limited to 1,000,000 (1 million, not 1 MB) bytes. Attempting to post a larger record generates an "Invalid Blob Size" error. You may experience more severe limitations using BLOBs with SQL Anywhere. When using that product, problems have been encountered when trying to read BLOBs as small as 24-32K in a dead query. Images in a TTreeView ----------------------------------------------- TTreeView cannot repaint a node's image when its ImageIndex is set outside of OnGetImageIndex (e.g., in a button click) and OnGetImageIndex is assigned (if the event handler is not assigned, it works correctly). This is due to a limitation in the TreeView control and is designed to avoid recursion. A simple workaround is to call TreeView.Invalidate after setting the ImageIndex. RichEdit controls ----------------------------------------------- If CoInitializeEx is called with COINIT_MULTITHREADED or CoInitFlags has been set to COINIT_MULTITHREADED and you have a form containing a RichEdit control, creation of the RichEdit control will fail. If you need to use the RichEdit control in a multi-threaded OLE server, subclass the control and override CreateParams in order to set the correct style. Note: the CoInitFlags are determined by the settings on the ATL page of the project options dialog. This page appears only in projects that contain an _ATL unit. Docking issues ----------------------------------------------- On a dockable form, TreeViews will lose their items when docking and undocking from a docksite parented by an MDI form. Workarounds: 1. Parent the TreeView to something other than the docking form (such as a panel). 2. Use the TreeView's FloatingDockSiteClass form as the floating dock host. Warning: Do not use duplicate menu names ----------------------------------------------- If a form contains a menu control and all of the names in the menu control are not unique, an error will occur if you use the form to create a new inherited form. The error will occur, for example, if two or more blank menu items exist. 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 DWORD registry key: HKEY_CURRENT_USER\Software\Borland\C++Builder\5.0\ Editor\Options\NoCtrlAltKeys to "1" BDE and related utility application issues ----------------------------------------------- (Enterprise and Professional editions only) A threading problem occurs if you set the session property sesCFGMODE2 to cfgmVirtual and/or cfgmSession (though cfgmPersistent works). Specifying either of the two noted settings can cause a GPF in your program. A mismatch between Oracle client and server versions can cause BLOB and CLOB access problems. SQL Links is not certified to overcome this limitation. Details: BLOB and CLOB access problems will be encountered when an Oracle 8.1.5 client communicates with an Oracle 8.0.4 server. (This product is certified only with the Oracle 8.1.5 client/Oracle 8.1.5 server configuration.) TStoredProc components that attempt to get an spParamList value from an invalid stored procedure will cause an AV in ORACLIENT8.DLL. To avoid this problem, make sure the procedure is valid on the server. Using TQuery with Oracle 8 BLOBs and CLOBs ----------------------------------------------- (Enterprise and Professional editions only) Accessing BLOB/CLOB in ORACLE 8 requires a LOB locator. The SQL statements for inserting LOBS using TQuery is as follows: INSERT INTO LOBTAB ( F_BLOB, F_CLOB) VALUES ( EMPTY_BLOB( ), EMPTY_CLOB() ) RETURNING F_BLOB, F_CLOB INTO :P1, :P2 Here, parameter P1, P2 should be bound as OraBlob and OraClob, respectively, and the BLOB values can be assigned to the parameters. SQL Links internally gets the locators from the returning clause of the above query and populates the LOB. Similarly, an update SQL statement would read: UPDATE LOBTAB SET F_CLOB = EMPTY_CLOB( ) RETURNING F_CLOB INTO :P1 Oracle 8, VARRAYs and ADTs ----------------------------------------------- (Enterprise and Professional editions only) An application can crash when opening an Oracle 8 table that contains a large VARRAY of ADTs. Oracle recommends using nested tables instead of VARRAYs when such configurations are required. Other issues ----------------------------------------------- Starting C++Builder 5 in Safe Mode on a Windows 98 machine may cause the IDE to hang. COM+ event client support ----------------------------------------------- (Enterprise and Professional editions only) In the Help topic entitled "Handling events in an Automation Controller" (index keyphrase: "Automation controllers, handling events"), a reference is made to a global routine named RegisterComPlusEventSubscription. This function is not available in this release. ADDITIONAL COMPATIBILITY NOTES =============================================== The following items describe compatibility issues between this release and earlier versions of the product, as well as issues that may arise between this product and other products. NOTE: The information below was confirmed late in the development process and may not appear in the online Help system's "Compatibility Issues" section. Windows 2000 support ----------------------------------------------- Applications generated by the Windows 2000 logo application wizard will run ONLY on Windows 2000. CORBA, BCB4, and VBroker 3.3 ----------------------------------------------- (Enterprise editions only) CORBA projects created with C++Builder 4 and VisiBroker 3.3 that reference cerr or cout may not compile with C++Builder 5. If you use cerr or cout and a compiler error is generated, either: -- Change cerr and cout to Cerr and Cout, respectively; or -- Add a line containing USE_STD_NS after the #includes at the top of the source file. Cerr, Cout, and USE_STD_NS are defined in the VisiBroker 4.0 header files. MIDAS.DLL replaces DBCLIENT.DLL ----------------------------------------------- (Enterprise and Professional editions only) When redistributing MIDAS clients, you must redistribute the new MIDAS.DLL with your applications. This file replaces DBCLIENT.DLL as the primary MIDAS support library. (DBCLIENT.DLL is also supplied to provide support for earlier versions of MIDAS.) DBTABLES has been split up ----------------------------------------------- (Enterprise and Professional editions only) Some members of DBTABLES have been moved to a new library called VCLBDE50. Consequently, when recompiling C++Builder 4 database applications, you may see linker errors indicating that members of DBTABLES cannot be found. To build these applications, you must manually add VCLBDE50.LIB to your project file. To do so, follow these steps: 1. Load the project in C++Builder. 2. Select File|Save All. 3. Close the project. 4. Open the project's .BPR file in an external text editor. 5. Find the two lines that look like these: (They may have more libraries listed.) Add "vclbde50.lib" to the end of each line: 6. Save the project file. 7. Reopen the project in C++Builder. Porting ActiveX control projects created in earlier versions ----------------------------------------------- (Enterprise and Professional editions only) Due to changes in the ATL's implementation of persistent streaming, all VCL-based ActiveX controls (created via File|New AX Control, File|New AX Form, or File|New Property Page) that were created in previous versions of C++Builder will not stream properly when rebuilt under this version. The problem is automatically corrected the first time you refresh inside the Type Library Editor --but is NOT corrected if you do not refresh. In addition, the style of the header guard used in C++Builder 4 ActiveX projects is not consistent with the header guards used by the C++Builder 5 IDE to determine if a file should be managed. Please update the header guards in server implementation files to be of the format: H e.g.: #ifndef Unit1H //this guard is case sensitive #define Unit1H //...header file code... #endif OldCreateOrder and enabling the Legacy View ----------------------------------------------- A reminder for those upgrading from C++Builder 3 that the TCustomForm::OldCreateOrder property was added in C++Builder 4. For C++Builder 5, you may need to explicitly set this form property to false in your existing C++Builder 3 programs that use OnCreate or OnDestroy. For example, you may see access violations when running an upgraded C++Builder 3 application if (in error) a String variable is set to NULL before the form's destroy handler is called. A program might set a String to a file name in an OnCreate and then save text to that file in an OnDestroy. In the OnDestroy handler, the contents of the String would be gone unless the OldCreateOrder property were set to false. Also note that in C++Builder 5, the legacy OldCreateOrder property is turned off by default in the Object Inspector. To view this and other legacy properties, right-click on the Object Inspector, choose View, and click Legacy. Functions removed ----------------------------------------------- (Enterprise and Professional editions only) The DBError and DBErrorFmt functions no longer appear in the DB unit. Earlier projects may require STDVCL32.DLL ----------------------------------------------- Projects created in version 3 and earlier releases require the presence of STDVCL32.DLL to enable their loading into the current release. When the older project is saved in this release, it is upgraded to use the new STDVCL40.DLL, and the older library is no longer required for that project. GraphicsServer component no longer included ----------------------------------------------- The GraphicsServer component (GRAPH32.OCX) that shipped with earlier versions of this product is no longer a part of the product. Information about the GraphicsServer component is available from the vendor at http://www.graphicsserver.com/ ONLINE HELP OMISSIONS, CORRECTIONS, AND CLARIFICATIONS =============================================== The following items describe late-breaking features and elements that are either not covered or require correction or clarification in the online Help system that ships with C++Builder 5. Most items include a title and keyword that will help you locate the affected topics. These issues will be corrected in future Help updates that will be made available on the documentation Web site (www.borland.com/techpubs). TMonthCalendar, TMonthCalColors documentation missing from Standard edition ----------------------------------------------- Documentation for the TMonthCalendar and TMonthCalColors VCL components was omitted from the Standard edition Help file set.. System::LeadBytes ----------------------------------------------- Online Help reports the declaration for the system variable LeadBytes as: extern PACKAGE System::Set LeadBytes; It should be: extern PACKAGE System::Set LeadBytes; Delphi code ----------------------------------------------- Delphi code appears in a number of third-party topics, as well as in a number of topics in the InterBase Express Help file. We are working to resolve this issue, and will offer updated files for download from the documentation Web site (address below) as the code translations are completed and tested. -VM compiler switch ----------------------------------------------- The topic describing the -VM compiler switch (search Help index for "-VM compiler option") is incorrect. It should read: "This switch turns on __msreturn for all functions, thus allowing the function to return structs in a Microsoft-compatible fashion. Structure contents, not a pointer to the structure, are returned via the EAX/EDX registers. "-VM only affects the way a function returns a struct and does not affect the name mangling. "-VM affects all functions, regardless of explicit calling conventions." Additional information, -pm compiler switch ----------------------------------------------- (Search Help index for "calling conventions".) Additional information: The -pm compiler switch is the -VM compiler switch plus Microsoft-style name-mangling and MS parameter-passing. -pm adds 'qm' to name mangling when there is no modifier, or when the modifier is __msreturn. Additional information, __msfastcall calling convention ----------------------------------------------- (Search Help index for "__msfastcall".) Additional information: __msfastcall adds 'qm' to name mangling. Error message clarification ----------------------------------------------- Pressing F1 on the Compiler Error "[Linker Fatal Error] Fatal: Expected a file name: " opens a topic with incomplete information. The topic should read: "This error always occurs during builds when C++Builder is installed into a directory with a + or - in the name, or a target file has an invalid path, or if a BPR file is corrupt." Additional information, Using files with CC and CXX file extensions ----------------------------------------------- (Search Help index for "CC files".) Additional usage information: After you edit the CFLAG1 line and add the file to the project, the project source includes this line: USE("foo.cxx", File); This needs to be changed to: USEUNIT("foo.cxx"); or the file will not compile. When you make the USEUNIT change, you will see an 'Edit Local Options' item on the local menu, but the item will not be operable. #import example missing ----------------------------------------------- If you click the Example link in the topic covering #import (BCB5LANG.HLP), only the example heading appears in a popup window. The example lines are: #import "test.lib" no_namespace or #import "c:\path\typelib0.tlb" Objects misnamed in online Help ----------------------------------------------- (Enterprise and Professional editions only) Due to a late change to an object name, the new TCRemoteDataModule object may be incorrectly identified as TCustomRemoteDataModule in the online Help system. In online Help, instances of TWebBrowser should read TCppWebBrowser. Snippet does not compile ----------------------------------------------- (Enterprise and Professional editions only) The code snippet offered in the Help topic "Updating the object" (index keyphrase "property pages, updating the object") does not compile. PRODUCT INFORMATION ON THE WEB =============================================== In addition to numerous private sites that offer C++Builder information, instruction, and samples, the following C++Builder/Inprise Web-based resources provide a continuous stream of news, product information, updates, code, and other materials. You can connect to many of these resources directly from the C++Builder Help menu. C++Builder Direct [Help|C++Builder Direct] ----------------------------------------------- This IDE add-in resource provides an automatically updated list of links to the latest news, downloads and other information about C++Builder and Inprise. Code Central ----------------------------------------------- The CodeCentral Repository is a free, searchable database of code, tips, and other materials of interest to developers. For details and registration information, visit http://community.borland.com/codecentral The Borland/Inprise Web site ----------------------------------------------- Borland/Inprise home page: http://www.borland.com or http://www.inprise.com [IDE: Help|Borland Home Page] C++Builder home page: http://www.borland.com/bcppbuilder/ [IDE: Help|C++Builder Home Page] C++Builder developer support: http://www.borland.com/devsupport/bcppbuilder/ [IDE: Help|C++Builder Developer Support] Web-based bug-reporting system: http://www.borland.com/devsupport Then click the "Bug Reports" link, choose Borland C++Builder, and follow the instructions for bug submissions C++Builder updates and other downloads: http://www.borland.com/devsupport/ bcppbuilder/downloads/ C++Builder documentation site: http://www.borland.com/techpubs/bcppbuilder Information for C++ developers: http://www.borland.com/bcppbuilder/cpp/ Information for Visual Basic developers: http://www.borland.com/bcppbuilder/vb/ Newsgroups: http://www.borland.com/newsgroups/ Electronic newsletter subscriptions: http://www.inprise.com/feedback/listserv.html International list server: http://www.inprise.com/feedback/intlist.html Worldwide offices and distributors: http://www.borland.com/bww/ Inprise FTP site (anonymous access): ftp.borland.com TechFax ----------------------------------------------- Technical documents are available via fax at: 1-800-822-4269 (North America) =============================================== Copyright (c) 2000 Inprise Corporation. All rights reserved.