What's New in C++Builder 64-Bit Windows

From RAD Studio XE3
Jump to: navigation, search

Go Up to What's New

The release of C++Builder 64-Bit Windows is also Update 1 for the RAD Studio XE3 release, which includes both the Delphi and the C++ personalities.

Highlights of This Release

64-bit Windows C++ Compiler and Utilities

The XE3 release introduces the all-new Clang-based 64-bit Windows C++ compiler and its associated command-line utilities:

There are significant differences between BCC32 and BCC64, and you will need to make some changes to BCC32 applications when you migrate them to BCC64.

For more information, see:

A Precompiled Header File Is Now Generated for All New C++ Projects

The IDE automatically generates a PCH.h file for every new C++ project for any target platform (Mac OS X, 32-bit Windows, or 64-bit Windows).

You can see the PCH.h file as a node in the Project Manager:


You do not have to use the PCH.h file that is generated for you, but if you want to use a precompiled header with your application, you should edit and use the PCH.h file. The compilers will automatically use the PCH.h file.

Precompiled Header Files for 64-bit Windows C++ Applications

Using a precompiled header file on 64-bit Windows is different from using precompiled headers with BCC32. For details, see:

C++11 Support in the BCC64 Compiler

Boost Libraries Version 1.50.0 Added for 64-bit Windows

Boost has been an optional installer inside the RAD Studio installer since the XE release. Now the Boost installer installs Version 1.39 on 32-bit Windows systems, and installs both versions of Boost (1.39 and 1.50.0) on 64-bit Windows systems.

  • Previously, users could install Boost Version 1.39 with RAD Studio XE, XE2 and XE3 (only supported in applications with a 32-bit Windows target platform).
  • Now if you choose to install Boost:
    • Boost Version 1.50.0 is installed on 64-bit Windows development systems.
    • Boost Version 1.39 is installed on all development systems (both 32-bit Windows and 64-bit Windows).
      • In addition, for Version 1.39, separate libraries are installed for 32-bit Windows and for OS X.
Installation Requirements Note: On a 64-bit Windows system, you might need 3 Gigabytes of free space for the Boost Libraries, and 18 Gigabytes of free space for the product installation, in order to ensure that the Boost Libraries are correctly installed. Installing Boost Version 1.50.0 requires considerable extra disk space beyond the space required for Boost Version 1.39. Keep in mind that both versions are installed on 64-bit Windows development systems, and for Version 1.39 both a Win32 and an OS X version are installed.

For more information, see Boost Libraries.

Dinkumware Standard Library Version 5.30 Added for 64-bit Windows

Dinkumware STL Version 5.30 is installed for 64-bit Windows target platform, and Dinkumware STL Version 5.1 is installed for 32-bit Windows target platform.

For more information, see Dinkumware Standard C++ Library.

Other Notable Features of BCC64

Database Support

DataSnap and dbExpress are supported by 64-bit Windows C++. However, legacy 32-bit database software such as BDE and DBX are not supported.

#pragma link Automatically Uses the Correct File Extension

The #pragma link directive assigns the file extension according to the target platform (.obj for Win32, .o for Win64). Thus, you no longer need to specify a file extension when using #pragma link. It is recommended that you omit the file extension in every #pragma link directive, in order to avoid unexpected results.

Rewrite the following code:

#pragma link "name.obj"

to be as follows:

#pragma link "name"

ActiveX Form and ActiveX Control Wizards Require 32-bit Windows

The ActiveX Form and ActiveX Control wizards are 32-bit Windows programs and thus are not available in 64-bit Windows mode. However, you can still use the ActiveX Form and ActiveX Control wizards simply by running them while you are in 32-bit Windows mode. For more information and steps to follow, see Creating a 64-bit Windows C++ ActiveX Form or ActiveX Control.

BCC32 Extensions are Not Supported by BCC64

This includes keywords and extensions with single underscore, such as:

The workaround is to use the form with the double underscore, such as __fastcall.

BCC64 Does Not Support Delphi-Style RTTI

Like BCC32, the C++ 64-bit Windows compiler only supports C++ RTTI. For more information, see:

Changes in Project Options

The Project > Options dialog box in the IDE has some changes to accompany the release of the 64-bit Windows C++ compiler.

How to Find the Supported Target Platforms for Each Compiler Option

You can see the supported target platforms for the various C++ compiler options either in the help or in the IDE, as follows:

  • In the help pages for C++ Compiler Project Options, a Supported Platforms column has been added, to list the target platforms that support each option (that is, OS X, 32-bit Windows, 64-bit Windows).
  • In the IDE:
    • Supported platforms are listed for each option if you select All configurations - All Platforms (in the Target field on the Project Options dialog box). If all the platforms are supported for a specific option, no platforms are listed (see Force C++ compile in the following example):


    • If you choose a 64-bit Windows Target configuration in Project Options, the page displays only the options supported on the 64-bit Windows platform.
      For example:


New or Shared Project Options for BCC64

The following list includes new options that support 64-bit Windows as well as other platforms, and existing options that now support 64-bit Windows:

  • C++ (Shared Options) contains existing options that are supported on all the platforms (this page was renamed from Directories and Conditionals, but no other changes have been made).
  • C++ Compiler page contains the following C++ options that are for 64-bit Windows only unless otherwise indicated:
    • Integer-sized enums (also supported on 32-bit Windows and OS X)
    • Disable C++ access control
    • Force C++ compile (also supported on 32-bit Windows and OS X)
    • Set the maximum number of errors to emit before stopping (0 = no limit)
  • C++ Compiler Advanced page contains the following option shared with both 32-bit Windows and OS X:
    • Additional options to pass to the compiler
  • C++ Compiler Compatibility page: BCC64 has no compatibility options, used by the other C++ compilers to maintain compatibility with previous versions.
  • C++ Compiler Debugging page contains the following option that is shared with both 32-bit Windows and OS X:
    • Debug information
  • C++ Compiler Directories and Conditionals contains the following options for 64-bit Windows, most of which are shared with both 32-bit Windows and OS X:
    • Add the Project Dir to Include path (64-bit Windows platform only)
    • Conditional defines
    • Include file search path
    • Object file output directory
    • System include search path (64-bit Windows platform only)
    • Undefine any previous definitions of name
    • Windows header file version defines (32-bit Windows and 64-bit Windows platforms only)
  • C++ Compiler Optimizations page contains the following options for BCC64:
    • Generate smallest possible code (shared with 32-bit Windows and OS X)
  • C++ Compiler Output - BCC64 exposes no output options in the IDE.
  • C++ Compiler Precompiled Headers page contains the following options for 64-bit Windows that are shared with both 32-bit Windows and OS X:
    • PCH usage (Do not use, Generate and use, Use but don't generate)
  • C++ Compiler Warnings page contains the following options for 64-bit Windows that are shared with both 32-bit Windows and OS X:
    • Disable all warnings
    • Enable all warnings
    • Treat warnings as errors

See Also