Unable to open file 'VRCONTROLS.OBJ'

Hello,

I wanted to upgrade to RAD 12. I installed RAD12 (chose migrate option for version update). I Uninstalled RAD11. I installed TMS software again (it asked to remove old, yes, then installed new and compiled with 12).

RAD12 opened fine, so I then opened the c++ project I use it with. I opened fine, all looks fine. choose option to build and it started coming up with a bunch of can't find component xyz .. alot from fastreports, but think there were a couple from TMS. I choose remove (I figured it must be old version) on the dialog. It then compiled everything but on link getting "Fatal: Unable to open file 'VRCONTROLS.OBJ' which I think is the TMS items.

It seems like something didn't get updated somewhere, any idea what I'm supposed to do, should I reinstall TMS again? Do I have to change something in my project? I'm fairly new to the Delphi/C++Builder products and this is the first upgrade I've ever done.

Thanks.

Can you verify your project isn't linking with a TMS Instrumentation Package with suffix DXE14 anymore and if so, replace this with the package with DXE15 suffix?

I manually went in to the .cbproj file and did a search/replace on DXE14 to DXE15 and there were 9 changes. I then opened the project, ran a "build" again, but got the same error.

C:\Users\Public\Documents\Embarcadero\Studio\23.0\BPL contains:

12/04/2023 07:18 PM 111,104 TMSVCLIWPkgDEDXE15.bpl
12/04/2023 07:18 PM 1,057,792 TMSVCLIWPkgDXE15.bpl
12/04/2023 07:17 PM 1,819,136 TMSVCLUIPackPkgDEDXE15.bpl
12/04/2023 07:16 PM 17,593,856 TMSVCLUIPackPkgDXE15.bpl
12/04/2023 07:16 PM 20,090 TMSVCLUIPackPkgDXE15.rsm
12/04/2023 07:17 PM 10,807,296 TMSVCLUIPackPkgExDXE15.bpl
12/04/2023 07:17 PM 1,165,312 TMSVCLUIPackPkgWizDXE15.bpl
12/04/2023 07:17 PM 934,400 TMSVCLUIPackPkgXlsDXE15.bpl

Linking is done with the .lib (Win32) or .a (Win64) files
Did you test if using the controls in a new app is working?

In the UI / Design View - the indicator shows (LED).

I tried building the x64 version to see what that would do and I get same issue:

Fatal: Unable to open file 'VRCONTROLS.O'

The 32bit version was 'VRCONTROLS.OBJ'

I'm not using the classic C++ compiler, it's building using bcc64 and bcc32c

But do you link with TMSVCLIWDXE15.a?

How do I tell, I didn't do anything other than do the upgrade process mentioned. Install 12, uninstall 11, install the latest tms versions (which uninstalled old first).

I then when in to the project and changed DXE14 to DXE15 per your instructions.

I know they did a bunch of changes to the C++ in 12, maybe something there or something in the build?

But first, where do I check what it is linking with?

I looked in options paths, I found it had the old paths builder11 (which doesn't exist) (without the environment variable) which I removed, but didn't change anything. (the builder12 items were there with ($TMSREG)

I had an issue yesterday that sounds a bit similar to yours in Delphi. Component VRLED caused the error of missing some vr*.* file here when used on a new fresh Application also. I also did some un-/re-install of products before as part of installing D12 and removing D10.
The problem disappeared when at the end of all updating uninstalling and re-installing Instrumentation Workshop again as last product.
Not sure what the exact problem was - but it helped in my case...

I tried reinstalling all of them in the same order I originally installed them, VCLUI, VCL Instrumentation Workshop, advchart, but didn't change anything.

I also opened the .a file in the x64 version using 7-zip (has that feature), and there was a "vrControls.o" file. And from what I saw in the project, the case sensitive link was not enabled.

To begin with, does it work when you add the components to a new project?

I created a new project, put on the vrIndicator and a button. It compiled and ran ok (win32 debug version).

That indicates the issue is in your C++ project file.
You should adapt it to make it link to the Delphi 12 installed TMS Instrumentation Workshop.

How do I do that? I already changed the DXE14 to DXE15 via search/replace in the project file.

I'm not an expert in C++ project files.
If you cannot do this, just create a new project file and re-add the form files to this new project.

One thing I noticed in the list when opening the > is that the only .lib files listed from TMS are:

TMSVCLUIPackPkgDXE15.lib TMSVCLUIPackPkgExDXE15.lib

But not sure where those are listed/added for the others ?

I searched the .cproj file for those and found them, added ;TMSVCLIWPkgDXE15.lib to each place that was found, now it builds.

Not sure how that went missing?

C++Builder itself will not automatically update such package references.
This always needs to be done manually.