What's New in C++Builder 2007
By: Kris Houser
Abstract: Describes major new features.of C++Builder 2007
In This Article
What's New in RAD Studio 2007 (C++Builder 2007)
RAD Studio 2007 provides key new features for developing C++ applications.
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 . You can build projects from the command line using the MSBuild command syntax.
- 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 ( ), C/C++ ( / ), assembler ( ), then resource ( ). Within each folder or virtual folder, files are built in order according to their file type.
- Build configurations are more extensive: Build configurations have changed. A build configuration contains the options that you set on many pages of . 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).
- New Build Configuration Manager activates a build configuration: Use 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.
- The Project Options dialog box has been reorganized: New pages have been added to the dialog box, and some existing pages have been renamed in order to better organize the options. New options have also been added, such as 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.
- 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.
- Named option sets are new: You can create and apply named option sets from the build-related pages of the dialog box. Named option sets are saved in files with the extension .
- 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 .
- 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.
- 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.
- C++ compiler is stricter; possible binary incompatibility: For important details about changes in the C++ compiler, see http://dn.codegear.com/article/36648#CPPcompiler.
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.
- 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 functionality for the Memory Manager: The new memory manager, released with Borland Developer Studio 2006, is documented fully in this release of RAD Studio 2007 (C++Builder 2007). Help topics include: Configuring the memory manager, Monitoring the memory manager, and Using ShareMem and SimpleShareMem to share the memory manager. The new Memory Manager routines and variables are listed under VCL in this topic.
- 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 to invoke the File Browser to perform basic file commands or to view a file's SVN status.
- 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.
- 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.
The following key features are new or significantly changed:
- Prevent scrolling of the event log: A new option on the 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).
- Call Stack Window: You can now set a breakpoint on a particular frame.
- Ignore non-user breakpoints: You can now specify that the debugger is to ignore breakpoints that you did not specifically set using the IDE.
- Debug Source Path: The source path for debugging is now a global setting that you create on the page.
- New toolbar button: The Notify on Language Exceptions command is now an icon on the page. You can click and drag the icon to your toolbar for quick access.
- 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.
Support for the Together modeling tool is new for C++:
- Limited modeling support from Together: The Together modeling tool, fully integrated in the IDE, provides only code visualization (read-only), documentation generation, and diagram printing features in C++ Builder 2007. However, the online help describes the full set of Together 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.
Only specific editions of the product contain all the features described in the Together 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 C++Builder 2007.
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 TSQLConnection class (method changes), TSQLDataSet (new property), and data structures (some are removed or replaced).
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.
VCL and RTL
AJAX: C++Builder 2007 supports AJAX-based RAD VCL for the Web development.
Microsoft Vista Compatibility: C++Builder 2007 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:
New Memory Manager routines and variables: The following new System routines and variables have been added to support the Memory Manager:
Published on: 6/7/2007 11:09:09 AM
Server Response from: ETNASC03