What's New in RAD Studio (C++Builder 2007)

From RAD Studio XE3
Jump to: navigation, search

Go Up to What Was New in Past Releases

Note: This document describes a past release.

RAD Studio provides key new features for developing C++ applications.

C++Builder 2007

The following key features are new or significantly changed:

  • MSBuild is the new build engine: When you build a C++ project, MSBuild now performs the build process. The structure of the project file has also changed to XML and now contains the options needed for MSBuild. The project file extension has changed to .cbproj. You can build projects from the command line using the MSBuild command syntax. For more information, see MSBuild Overview.
  • The Project Options dialog box has been reorganized: New pages have been added to the Project Options dialog box, and some existing pages have been renamed in order to better organize the options. New options have also been added, such as -Vb options that support C++ constructs that are no longer supported in the standard. The new Project Properties page allows you to specify that the C++ compiler is to manage library paths, verify package imports, show header dependencies, or use auto-dependency checking. For more information, see Setting Project Options. For information on project options that are no longer available in the IDE, see Unavailable Options.
  • You can merge Project Options: Some project options have a Merge check box. When checked, the IDE includes the option values from the current build configuration's immediate ancestor. The options for the current configuration are not actually changed. See Project Options for more information on Merge.
  • Build configurations are more extensive: Build configurations have changed. A build configuration contains the options that you set on many pages of Project > Options . Build configurations store sets of command-line options for build tools such as the compiler, linker, and MSBuild. You can create your own configurations, and there are three default configurations (Base, Debug, and Release). For more information, see Build Configurations Overview.
  • Named option sets are new: You can create and apply named option sets from the build-related pages of the Project > Options dialog box. Named option sets are saved in files with the extension .optset. For more information, see Option Sets Overview.
  • Build order has changed: MSBuild builds files according to file type (extension) rather than the user-modifiable order previously used. The new build order is Delphi (.pas), C/C++ (.c/.cpp), assembler (.asm), then resource (.rc). Within each folder or virtual folder, files are built in order according to their file type. For more information, see Overview of Virtual Folders.
  • New Build Configuration Manager activates a build configuration: Use Project > Configuration Manager to select the build configuration that you want to be active for a selected project or projects. The Configuration Manager replaces the existing way of specifying the active configuration for C++ projects. For more information, see Configuration Manager.
  • You can specify build events: You can specify commands to execute at specific points in the build process (pre-link events are new; pre-build and post-build events existed in previous releases). Right-click a buildable file in the Project Manager and choose Build Events. For more information, see Build Events.
  • You can create and add .targets files to a project: A .targets file is an XML file that can contain MSBuild scripts, such as lists of tasks to perform. For more information, see Targets files.
  • Location of demo code has changed: Demo code is now in MyDocuments\RAD Studio\Demos. Demos were moved out of the Program Files directory due to Microsoft Vista restrictions.
  • You can compile C++ packages with Delphi: C++Builder supports compiling design-time packages that contain Delphi source files. However, if any of those Delphi sources make reference to IDE-supplied design-time units such as DesignIntf, DesignEditors, and ToolsAPI that exist in DesignIDE100.bpl, you must take steps to ensure that the references can be resolved by the C++Builder package. See Compiling C++ Design-Time Packages That Contain Delphi Source to learn how to do this.

Unit testing for C++

Support for Unit Testing is integrated with the DUnit Testing Framework. The DUnit framework is based on the JUnit test framework, and shares much of the same functionality.

You can use the C++Builder Unit Testing wizards to quickly generate skeleton templates for the test project, setup and teardown methods, and basic tests. You can then modify the templates, adding the specific test logic to test your particular methods.

You can run tests using either the Console Test Runner or the DUnit GUI Test Runner. The Console Test Runner directs test output to the Console. The DUnit GUI Test Runner displays test results interactively in a GUI window, with results color-coded to indicate success or failure.

C++Builder Web Services support enhancements

C++Builder Web Services support now includes the following:

  • unbounded elements
  • optional elements
  • nullable elements
  • WSDL and schema that import external schemas

These enhancements bring C++Builder Web Services support up-to-date with that of Delphi, enabling your applications to interact with the more robust Web Services like eBay, Amazon, MapPoint, and so forth.


The following key features are new or significantly changed in the integrated development environment (IDE):

  • Vista and XP Themes: The IDE now supports Windows Vista and XP themes. Themes are on by default, but you can disable themes for either the IDE or for individual applications. For more information, see IDE on Windows Vista.
  • Duplicate file names: A project is now allowed to contain any number of files with the same name. For example, you can have both the files Common\source1.cpp and Product\source1.cpp in your project. The IDE handles generating the object files so that there is no confusion, and the object from both files is used in building the project.
  • Expanded help about the Memory Manager: The new memory manager, released with Borland Developer Studio 2006, is documented fully in this release of RAD Studio. Topics include: Configuring the memory manager, Monitoring the memory manager, and Using ShareMem and SimpleShareMem to share the memory manager. The Memory Manager routines and variables are listed under VCL in this topic. For more information, see Memory Management on the Win32 Platform.
  • Multi-select in Project Manager: Hold the CTRL key to multi-select files for the Open, Save, Save As, and Remove from Project context-menu commands in the Project Manager.
  • New File Browser: Use View > File Browser to invoke the File Browser to perform basic file commands or to view a file's SVN status. For more information, see File Browser.
  • New toolbar in the Structure view: A new toolbar available only for C++ allows you to Sort Alphabetically, Group by Type, Group by Visibility, Show Type, and Show Visibility. For more information, see Structure View.
  • Virtual folders in the Project Manager: You can create virtual associations between items in the tree structure. You can use virtual folders to influence the build order. For more information, see Overview of Virtual Folders.


The following key features are new or significantly changed:

  • Prevent scrolling of the event log: A new option on the Tools > Options > Debugger Options > Event Log page prevents the event log from scrolling new events into view as they occur.
  • CPU windows: You can now open individual panes of the CPU window, such as the Disassembly, CPU Stack, and Registers panes. These single panes of the CPU window are dockable; you can undock the panes and dock them elsewhere in the IDE according to your needs. The CPU window also now automatically closes when you end the debugging session, and the Disassembly pane contains two new options (Show Opcodes and Show Addresses). For more information, see CPU Windows.
  • Call Stack Window: You can now set a breakpoint on a particular frame. For more information, see Call Stack Window.
  • Ignore non-user breakpoints: You can now specify that the debugger is to ignore breakpoints that you did not specifically set using the IDE. For more information, see Embarcadero Debuggers.
  • Debug Source Path: The source path for debugging is now a global setting that you create on the Project > Options > Debugger page. For more information, see Setting the Search Order for Debug Symbol Tables.
  • New toolbar button: The Notify on Language Exceptions command is now an icon on the View > Toolbars > Customize > Commands > Categories > Run page. You can click and drag the icon to your toolbar for quick access. For more information, see Language Exceptions.
  • Transparent tooltips: To make a debugger evaluator tooltip transparent, press the CTRL key when the tooltip is displayed. Making a tooltip transparent enables you to read the screen behind the tooltip.

UML Modeling

Support for the UML Modeling tool is new for C++:

  • C++Builder 2007 provides limited UML modeling support, the fully integrated modeling tool in the IDE. Note that only the code visualization (read-only), documentation generation, and diagram printing features are available in C++Builder 2007, but the online help describes the full set of Modeling features.
  • C++ Class Diagrams (Code Visualization): The C++ class diagram is only available in read-only mode. You can create design diagrams in your C++ projects, but you cannot create classes, interfaces, and so forth in the Model View.
  • Design Diagrams: The complete set of design diagrams are available only in the Enterprise edition of the product. This includes sequence diagrams, collaboration diagrams, state charts, deployment diagrams, use case diagrams, activity diagrams, and component diagrams.
  • Printing diagrams and generating documentation: Both the Professional and Enterprise editions support the printing of diagrams. The Enterprise edition also supports the generation of documentation.

For more information, see Modeling Concepts or How To Use the Modeling Tools.

Note: Only specific editions of the product contain all the features described in the Modeling portions of this help system. The current release contains a limited set of features.


Many changes have been made to improve support for database application development in RAD Studio.


Unicode support has been added to the Oracle, Interbase, and MySQL dbExpress drivers.

New driver clients have been added: Interbase 2007 and MySQL 4.1 and 5.

A new dbExpress framework has been created. You can use this framework both to interface with existing drivers and to write new drivers by extending dbExpress framework's abstract classes. You can use the framework directly for both native and managed applications.

A delegate driver is a driver between the application and the actual driver. Delegate drivers allow for pre and post processing of all public methods and properties of the dbExpress 4 framework. Delegate drivers are useful for connection pooling, driver profiling, tracing, and auditing. Sample delegate drivers area provided.

The dbExpress VCL component's API has changed slightly. Most applications are not affected by changes to the dbExpress VCL. However, there are some methods, properties, events, constants, and enums that were removed or replaced with equivalent functionality.

You can also use the dbExpress VCL components that are layered on top of the framework for both native and managed applications. There are some minor API changes in the VCL components to the Data.SqlExpr.TSQLConnection class (method changes), Data.SqlExpr.TSQLDataSet (new property), and data structures (some are removed or replaced). See dbExpress Framework Compatibility for more information.

The dbExpress driver framework:

  • Is written entirely in the Delphi language and allows drivers to be written in Delphi.
  • Uses strongly typed data access instead of pointers. For instance, the framework uses String types rather than pointers to strings.
  • Is single sourced. This means that a single copy of the source can be compiled with either the native DCC32 or managed DCCIL compilers.
  • Has only Abstract base classes that are used for drivers, connections, commands, readers, and so on.
  • Uses exception-based error handling rather than returning error codes.


New components: The following new components have been added to the Visual Component Library:

AJAX: RAD Studio supports AJAX-based RAD VCL for the Web development.

Microsoft Vista Compatibility: RAD Studio provides components, classes, methods, and properties that are compatible with the look and feel of the Vista operating system.

New VCL components: The following new classes have been added to the Visual Component Library:

  • TFileOpenDialog
  • TFileSaveDialog
  • TTaskDialog
  • TCustomFileDialog
  • TCustomFileOpenDialog
  • TCustomFileSaveDialog
  • TCustomTaskDialog
  • TFavoriteLinkItem
  • TFavoriteLinkItems
  • TFavoriteLinkItemsEnumerator
  • TFileTypeItem
  • TFileTypeItems
  • TTaskDialogBaseButtonItem
  • TTaskDialogButtonItem
  • TTaskDialogButtons
  • TTaskDialogButtonsEnumerator
  • TTaskDialogProgressBar
  • TTaskDialogRadioButtonItem

New Memory Manager routines and variables: The following new System routines and variables have been added to support the Memory Manager:

  • AttemptToUseSharedMemoryManager
  • GetMemoryManagerState
  • GetMemoryMap
  • GetMinimumBlockAlignment
  • RegisterExpectedMemoryLeak
  • SetMinimumBlockAlignment
  • ShareMemoryManager
  • UnregisterExpectedMemoryLeak
  • NeverSleepOnMMThreadContention
  • ReportMemoryLeakOnShutdown

Note: Some of the following links might not work, because the target of the link might no longer exist in the help system. In addition, the current help system contains only the latest version of each topic.

See Also