64-bit Development

Escape the 32-bit memory ceiling for your app and the RAD Studio IDE itself. Build 64-bit applications and use both RAD Studio IDEs side by side in the same workflow.

Why urgency is critical

32-bit processes are hard-capped at 4GB of addressable memory, a real ceiling for data-heavy or large-scale applications. The WoW64 emulation layer also adds runtime overhead on Windows. Moving to 64-bit removes both constraints and future-proofs your codebase across all target platforms.

Moving to 64-bit Development

Since Delphi XE2, developers have been able to build both 32-bit and 64-bit applications from the same codebase. In many cases, moving to 64-bit is straightforward. Often as simple as adding a 64-bit target in the project manager and rebuilding. This simplicity is a major advantage over other languages that require significant type changes to handle platform differences.

As the shift to 64-bit operating systems accelerates across all platforms, adopting 64-bit development has become essential. For RAD Studio users working with Delphi or C++Builder, it unlocks better performance, improved memory usage, and a stronger user experience. Ultimately, moving to 64-bit isn't just a technical upgrade, it's key to keeping applications relevant, efficient, and future-ready.

Platform deadlines and risk

  • All App Stores require 64-bit binaries and modern target API levels.
  • macOS has already dropped 32-bit support; Windows is steadily tightening expectations around legacy runtimes.
  • Relying on WoW64 and legacy toolchains introduces performance overhead and long-term compliance risk.
  • Treat 64-bit as a mandatory step in your upgrade plan, not a "nice to have".

https://www.youtube.com/watch?v=fVBHs8WuEGg

64-bit migration walkthrough with practical examples you can mirror in your own projects.

Are 32-bit applications able to run on 64-bit operating systems?

Yes, 32-bit applications can run on some 64-bit operating systems. macOS has now moved to 64-bit applications only, while Windows achieves this through a feature known as Windows on Windows 64 (WoW64). WoW64 is an emulation layer that allows 32-bit applications to execute on 64-bit versions of Windows. It intercepts and translates the necessary system calls from 32-bit to 64-bit, ensuring that the application runs correctly without modification. This compatibility layer isolates 32-bit applications so they can function alongside native 64-bit applications while providing a smoother transition. While this is helpful from a usability point of view, it does add overhead to the operating system, so you should plan to reduce your reliance on it over time.

Key Differences Between 32-bit and 64-bit Development

Size of Pointers and Integers

One of the fundamental changes when moving to 64-bit is the size of pointers and integers. In a 32-bit environment, pointers and most integers are 4 bytes in size. However, in a 64-bit environment, pointers expand to 8 bytes, allowing applications to address a significantly larger memory space. When copying data, you must use the right methods and be sure the sizes of the types used match.

RAD Studio has made some changes to the types to allow for 32-bit and 64-bit sizing. The newer NativeInt is 4 bytes on 32-bit platforms and 8 bytes on 64-bit platforms, whereas an Integer always remains 4 bytes. Choosing the right type can ensure compatibility with other methods being called, and also help reduce memory usage and ensure faster processing.

Use of Assembly Code

Assembly code can be more complex in a 64-bit environment due to the increased number of registers and the different calling conventions. While 32-bit assembly code can often be more straightforward, 64-bit assembly provides more flexibility and power, allowing for better optimization and performance.

In short, it is recommended to remove Assembly from your methods unless you really need to use it. If you do need to use Assembly, then you can use the correct Inline Conditional Defines (IFDEFs) to wrap that code for the platform required. Assembly should also be in its own function/procedure to enable correct compilation.

Transitioning with RAD Studio

The good news for Delphi and C++Builder developers is that RAD Studio's run-time libraries are designed to support 64-bit development. In many instances, the process is as simple as adding a new target platform in your project settings. Here's how RAD Studio makes the migration straightforward:

  • Integrated Libraries: The run-time libraries are already optimized for 64-bit, reducing the need for extensive code rewrites.
  • Multi-Target Projects: Easily configure your projects to build for both 32-bit and 64-bit platforms, ensuring compatibility and performance across different systems.
  • Debugging and Testing: Utilize RAD Studio's robust debugging and testing tools to ensure your 64-bit applications are stable and performant.

The 64-bit RAD Studio IDE

64-bit migration is not only about the applications you ship. Since RAD Studio 12.3, there is a native 64-bit IDE, and from RAD Studio 13.0 onward it is included in the standard installation.

The 32-bit and 64-bit IDEs are compatible with the same projects and can be used side by side. Teams can move between both IDEs as needed, and even run both at the same time during migration and validation work.

  • More IDE memory headroom: The 64-bit IDE runs as a 64-bit process, so very large solutions and heavy builds are not constrained by the 32-bit process ceiling.
  • Aligned 64-bit toolchain: The 64-bit IDE uses the 64-bit Delphi compiler, with C++ Win64 Modern for Windows C++ targets.
  • Core productivity features: VCL and FMX form design, code editing, debugging, FireDAC, RTLs etc, are all available for Win64-focused development.
  • Clear mode indicator: The title bar, taskbar icon, splash screen, and About dialog indicate when you are running the 64-bit IDE.

Requirements for IDE migration

  • Design-time packages, experts, and plugins must be built for Win64 to load in the 64-bit IDE. This includes third-party visual component packages.
  • Database design-time connectivity from the 64-bit IDE depends on 64-bit database drivers.

64-bit and 32-bit IDE Features

Authoritative side-by-side feature comparison for both IDE versions.

docwiki.embarcadero.com

64-bit IDE

Official reference for the RAD Studio 64-bit IDE, including target platforms, debugger details, and package setup guidance.

docwiki.embarcadero.com

Getting Started

To start your 64-bit migration, add the 64-bit target to your existing project. RAD Studio will handle much of the work required to build for the new architecture. With some focused adjustments, you'll be able to benefit from the capabilities of modern 64-bit systems. Remember, the Embarcadero Sales Engineering Team have helped thousands of customers move forward over the years and are happy to point you toward the resources you need.

Adopting 64-bit development with RAD Studio positions your applications for future operating system and store requirements without a full rewrite.

Additional Resources

Converting 32-bit Delphi Applications to 64-bit Windows

Official step-by-step guide covering pointer sizes, type changes, and compiler settings.

docwiki.embarcadero.com

Delphi 64-bit Code: What's Different, What's the Same

A practical overview of what actually changes when targeting 64-bit, with common gotchas explained.

delphiaball.co.uk

Ready to take the next step?

Our migration specialists have helped thousands of Delphi and C++Builder developers modernize their legacy architecture safely and efficiently.