C++Builder 12.1 - Windows 64bit (Modern)

Hopefully, you can fix both issues soon :slight_smile:. For now, I'll stick with the 'old' conventional setup.

We have fixed the issue with Modern 64 bit support and are currently rebuilding a new version (13.1.3.2). When using Smart Setup, we are using an auto-suffix define which will add 290 suffix as soon as the packages are opened and built, for RAD Studio 12, this will generate TMSVCLUIPackPkg290 specific files, but it should still be possible to link against TMSVCLUIPackPkg without the suffix for C++ Builder.

1 Like

I've got it to build and link in the 64-bit (original) compiler now with a Smart Setup installation. I changed the references in my existing project to remove the "DXE" suffix as per the new (apparent) naming convention. I then had to make sure my project was set to not link against runtime packages.

When runtime packages were on I think there was still a problem with the path names for the 64-bit builds as it failed with the (0xc000007b) exception on startup which suggests it was trying to dynamically load a 32-bit bpl/dll.

When compiling for the normal Win64 build, the packages TMSVCLUIPackPkgDXE15 and TMSVCLUIPackPkgExDXE15 couldn't be found. The package TMSVCLUIPackPkg.bpi and TMSVCLUIPackPkgEx.bpi could be found, but when build with them, the application did not start up. TMSVCLUIPACKPKG290.bpi and TMSVCLUIPACKPKGEX290.bpi could also not be found.

It also still does not seem to add the build path (C:\Users[...]\AppData\local\TMS Setup\Products\tms.vcl.uipack\packages\d12\Win64\Release) to the Paths and Directories for the modern compiler. Also, in the IDE, the tadvstringgrid and tadvsplashscreen indicate they are only available for Win32 and Win64. the tadvstringgridspellcheck (and others) indicate Win32, Win64 and Win64x. I do not know where this difference comes from, but this doesn't seem to be expected behaviour.

Ok, it seems indeed there are some shortcomings in TMS Smart Setup. Please note that we didn't update the normal setups, we are working on TMS Smart Setup as the tool to use now and in the future, so for Modern C++ Builder support that's the tool that you want to use. We have meanwhile updated platform attributes to allow components to be dropped on the form, and are also investigating the linking issues in Modern Win64 for C++Builder, stay tuned.

1 Like

My main goal is to be able to use the Win64x platform (wether via Smart Stup or the 'old' conventional setup). One suggestion (approximately two weeks ago) was to use Smart Setup, so that's why I was focussing on that.

I really like the thought about Smart Setup (faster, no uninstalling old installation, being able to install while C++ Builder is running) and am looking forward to be able to use this as the default setup for TMS. But more importantly, I would like to be able to use Win64x with TMS :slight_smile:.

edit: With the normal setup, the problems about no paths being added to the 'Paths and Directories' in the IDE and TAdvStringGrid and TAdvSplashScreen indicating they are not available for Win64x (while TAdvStringGridSpellCheck and others are available) is also present. So that is not a problem with Smart Setup, but with TMS VCL UI Pack in general.

the soap issue should be fixed in the last smartsetup commit. With it (and the modified yaml) it seems to compile correctly:

But there are still remaining issues:

  1. AdvStringGrid is disabled in win64x, I guess it has to do with the pids of the component? (it should mention win64x besides win64)

2.It now complains about soap :frowning:

Now, this second thing looks to be a bug in embarcadero, we can workaround it, but maybe we should report it and hope they fix it? I already added a hack for smartsetup to be able to workaround this "not finding soap" thing, but it just pushed the problem further down the road. If we want to fix it and not wait for embarcadero, we would have to add "c:\program files (x86)\embarcadero\studio\23.0\lib\win64\release" to the extra paths of the yaml (but of course, not hardcoded like that, as it might be in d:\ or other place). But embarcadero should fix this. I'll see to add a case

Hi everybody,

Sorry if my last post read a little confusing, I posted it public by mistake, it was supposed to be only to the tms team investigating this. But this being said, our status is:

  1. We need to do minor changes to the smart setup packages for win64x to work. We will be doing this very soon.
  2. There is a problem because libsoaprtl.lib is not yet shipping with Rad Studio 12.1. We've confirmed this with embarcadero. I believe we can remove this dependency, but if not possible, we will have to wait until Embarcadero provides soap support in Rad Studio.

I also encountered the isse with soaprtl and created a request with Embarcadero: Jira Service Management

Hi,

We've released a new version (13.1.3.3) for TMS Smart Setup that should fix all remaining issues.

When using Smart Setup (and TMS VCL UI Pack v13.1.3.4):
I had to remove "DXE15" from "TMSVCLUIPackPkgDXE15" and "TMSVCLUIPackPkgExDXE15" for my normal Win64 build to compile, but the program cannot start with the error:

Unable to create process: 'Win32 error code: 0xc000007b'.

For Win64x, the correct path is now added to the IDE options (and compilation goes perfectly, so that is a win) Linking off-course also fails because of the same reason as Win64 (and because of soaprtl.lib, but that's Embarcadero's fault).

When using conventional setup (and TMS VCL UI Pack v13.1.3.3, v13.1.3.4 doesn't seem to be available at this time):
No path is added to the IDE for Win64x (but the TAdvStringGrid and TAdvSmoothSplashScreen both indicate to be also available for all 3 windows platforms, so that at least is fixed now).

When you compiled the Win64 app with runtime packages, you need to make sure the EXE can find the TMS VCL UI Pack runtime package .bpl files! Either add the folder where these are located in your system path or copy the files in the same folder where the EXE is located.

Turning runtime packages off, helped! Thanks! A usable error would have been nice, but that's probably on Embarcadero or Windows.

The Win64x builds perfectly without linker errors (well, without linker errors about TMS VCL UI Pack, sadly about 19 errors about undefinde ldap_* symbols, but that's Embarcadero)

The linker errors turned out te be solvable, so I have now actually succesfully started my Win64x app with TMS! Thanks a lot for the help and the fast updates :smile:

1 Like

I am using C++Builder 12.1 patch 1. No Delphi. I installed the TMS VCL UI Pack using installer v13.1.3.3 , I used the traditional installer not the Smart Setup.

When I compile a Modern 64-bit test app with only AdvStringGrid I am getting the message "Unable to Find Static Library: TMSVCLUIPackPkgDXE15.lib" and it is asking me to identify the path. Can you show the correct path I should enter into this dialog box to get this working.
missing

Depends on where you run TMS Smart Setup from. Make sure you update to the latest version of TMS Smart Setup tms.exe

Search your hard disk for TMSVCLUIPackPkgDXE15.lib , TMS Smart Setup should have generated it.

Using Smart Setup (Download | TMS Smart Setup documentation) and v13.1.3.4, it should work correctly. You just need to remove "DXE15" from the various names in the project file, because Smart Setup generates libs without DXE15 in the name.
I don't know if the traditional setup will work ones updated to v13.1.3.4, but I am sure it workes when using Smart Setup.