The 25 days of C++mas - December 13 - Migrating C++Builder Code to 64-bits

By: David Intersimone

Abstract: David I shares links and information on Clang, LLVM and porting C++Builder application to 64-bit

This is a copy of a blog post from David I's Sip from the Firehose blog. Click to blog post title below to see the original blog post and comments.

  The 25 days of C++mas - December 13 - Migrating C++Builder Code to 64-bits

On Wednesday morning, December 12, at the CodeRage 7 C++ ConferenceBruneau Babet (Embarcadero C++ R&D Engineer) presented a session showing developers how to migrate their C++Builder XE3 32-bit applications to 64-bit Windows.  Bruneau’s session covered some of the differences between the Embacadero Win32 and Win64 C++ compilers, comparing keywords, macros, extensions and standards conformance for both compilers. During the session, John Thomas, Embarcadero’s Director of Product Management for Developer Tools, guided the conversation to discuss the new compiler, the use of Clang, LLVM and strategies for porting existing C++ Projects and writing new code in a way that works for both Platforms. Here are a few tidbits taken from the slides used in Bruneau’s presentation.  The replay of the session will appear as "watch" and "download" links on the conference session entry sometime next week.

clang and llvm

The clang compiler front end has a modular library-based architecture. It is a real-world, production quality compiler with conformance with C/C++/Objective-C and their variants.

C++Builder Win64

The new C++Builder Win64 compiler is created by combining clang and the Embarcadero/Borland extensions. With C++Builder Win64, the Embarcadero C++ team created the first Windows 64-bit back end.

  • bcc64 = clang + Embarcadero/Borland Extensions
  • -fborland-extensions compiler option

C++ Compiler Extensions to support Windows and Delphi Language

Delphi Language compatibility extensions – required to allow C++Builder developers to use Delphi reusable GUI components, RTL functions and other language features use of Delphi components (Properties, Methods, Events) and other Delphi language features including closures and enhanced RTTI:

Win64 porting items to pay attention to

  • sizeof(ptr) != sizeof(int) - Use size_t for memory size
  • _WIN32 is defined - Check for _WIN64 instead
  • Bit shifting - Watch for 32-bit constants

Watch/Download the C++Builder 64-bit Compiler Preview Video

Additional details about the 64-bit C++Builder compiler are available in the preview video.  Watch the C++ 64-bit compiler preview video on YouTube at You can also download the MP4 video file at  The preview video is 9 minutes long.

Try the C++Builder 64-bit compiler

The C++Builder XE3 and RAD Studio XE3 free trial downloads have been updated to include the new C++Builder 64-bit compiler.  Trial downloads are available at

Happy C++mas!

During the first 25 days of December leading up to Christmas, I will blog about the upcoming release of the C++Builder 64-bit compiler for Microsoft Windows and C++Builder XE3support for building VCL and FireMonkey 2 applications.

Server Response from: ETNASC04