Win64x platform compatibility for C++Builder users?

Hello,

I wonder if there is already some sort of compatibility for the Win64x (modern c++ 64 bit compiler) platform within RemObjects SDK? The latest version only has Win64 and WinARM64EC, but no Win64x. I believe that something needs to be enabled on the Delphi packages for this to be produced. I am thinking about starting the migration for some of my apps to 64 bits and the modern C++ compiler, but this is apparently needed for me to advance.

I am on RAD Studio 13.2, with the latest RO-SDK available version: 1627.

Thanks!

We’ll have a look at that!

Hi,

You can manually create these files.

steps:

  • open package (e.g. RemObjects_Core_D37.dproj)
  • add Win64 (Modern) platform
  • check that Options → Building → Delphi Compiler → Output - C/C++ → C/C++ Output file genertion is set to Generate all C++Builder files... for Win64 (modern) or all targets:
  • build Win64 (modern) target

You should do above steps for all needed RO/DA packages.


We are going to include this fix into incoming .1629

Thank you Marc & Evgeny!

I’ve created the needed files for Win64x… but there is an issue with the code that rodl2code generates, related to this change:

https://docwiki.embarcadero.com/RADStudio/Athens/en/Exception_Handling_in_the_Modern_C%2B%2B_Toolchain

It is not valid for the modern 64bit C++ clang-based compiler to mix __finally and catch in the same function. And at least the Async functions in the generated _Intf files produce those.

Fixing those for some of the recommended paths by Embarcadero now surfaced another issue, a bug in the compiler itself: Broken module found ("unwind destination does not have an exception handling instruction"), which is apparently easily reproducible. It depends on having an interface method that takes a String by value and has a __try/__finally body… which every generated RO proxy has… I am preparing a test case to upload to QP. In the mean time, passing the String by reference appears to workaround this. Also, calling without the interface, but that I guess is not an option.

Edit: I’ve reported this to Embarcadero: Jira Service Management - and will try opening a support ticket with them to see if this can be looked into faster…

:face_with_peeking_eye: