3
votes

With most Delphi and C++ Builder projects, including component packages, you can add a 64-bit Windows target by right-clicking on the Target Platforms item in the Project Manager and selecting Add Platform, then choosing '64-bit Windows' in the resulting dialog.

Recently while installing components in a new installation of RAD Studio XE4, I've been unable to do this for some components. For example:

The Add Platform dialog with only OSX and 32-bit Windows showing

This specific example is TMS's Advanced Poly List, but it's happened for other component packages as well - but not all. Some have the target available, and for those I can build the package and create a 64-bit VCL forms application that uses the component fine.

What is preventing the Win64 target appearing in the dialog, and how can I re-enable it?

1
Is it a designtime package? Did you install 64 bit compiler?David Heffernan
The 64-bit compiler is installed and works for other packages. This specific package is both designtime and runtime (ack) but I believe I have seen it with runtime-only packages where the component library had both designtime and runtime packages.David
Changing this package to 'runtime only' does not add the Win64 target back into the dialog.David
Closer inspection shows this package is a C++ Builder package, referencing a single .cpp file as well as the Pascal files. If I make a new C++ package myself, I can only target Win32 and OSX. If I make a Delphi package, I can also target Win64 (as well as iOS etc.) Yet the 64-bit C++ compiler is installed and I can compile and run a 64-bit VCL C++ application.David
...and it appears that in XE3, 64-bit packages aren't supported and so presumably this hasn't been done in XE4 yet either. Crikey. Talk about hiding an important missing feature in a one-line note deep in the documentation :/David

1 Answers

5
votes

In C++ Builder XE6, released a few days ago (mid-April 2014), you can now create 64-bit packages in C++.


Old outdated answer (valid for C++ Builder XE3, 4 and 5):

64-bit compilation is a missing feature for C++ packages in XE3 and XE4.

For Delphi, you can target Win32, Win64, OSX and (I think) iOS for packages.

For C++, you can only target Win32 and OSX, even if you have the 64-bit compiler installed. This is documented for XE3, and is apparently not fixed in XE4 either.

There was no QC report for this, so I have added one. Please feel free to vote for it. My rationale for its importance is that packages are an important part of the Delphi / VCL ecosystem, especially for components. While you can use Delphi-created 64-bit packages in your 64-bit C++ project, this means you can't use components written in C++ in a 64-bit program. For us, this will require rewriting our components in Delphi, or waiting until the compiler supports it.