Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C++ Builder XE7 project issues #596

Closed
dcembala opened this issue Dec 9, 2015 · 12 comments
Closed

C++ Builder XE7 project issues #596

dcembala opened this issue Dec 9, 2015 · 12 comments

Comments

@dcembala
Copy link

dcembala commented Dec 9, 2015

We have been succesfully using version 5.1 in our application for some time now. We wanted to update to current version and see what changed but we encountered following issues (We are using C++ Builder XE7 Update1, same effect on 2 different PCs):

Trying to compile VirtualTreesCR.cbproj gives error:
[DCC Fatal Error] VirtualTrees.pas(3894): F1026 File not found: 'VTHeaderPopup.dcu'

After adding VTHeaderPopup.pas to project it succesfully compiles and VirtualTreesCD installs but while placing new TVirtualStringTree component on a form in new clean project it gives nasty acces violation:
error_virtual

@joachimmarder
Copy link
Contributor

Did you use V5.1 with C++ Builder XE7, or with an earlier version of C++ Builder?

Using the package VirtualTreesD.dproj will work, but is only possible if you also have the Delphi personality installed and loaded.

@dcembala
Copy link
Author

dcembala commented Dec 9, 2015

Yes in XE7, we created our own .cbproj to compile and install it in C++ but our project with updated sources give exact same effect as the one here.
We dont have Delphi personality only C++ so we cant use .dproj :(

@joachimmarder
Copy link
Contributor

@romankassebaum confirmed this issue to me. We think it could be a linker error in the C++ Builder linker, which is triggered by a certain source code change in Virtual TreeView in the apst.

The problem is that I don't use C++ Builder. It would be great if you could manage to find the last working version of Virtual Treeview. If we could identify the source code change that triggered the linker error, we could try to find a workaround.

@dcembala
Copy link
Author

Last working version for us is 5.5.3 since 6.0 we get the the error like in the screen above.

@dcembala
Copy link
Author

commit 4f0cad5 - last working commit, it seems that there is a problem when R package is set to runtime only, after changing back to design time even current version works fine in c++ builder. no idea why, R should be runtime only but something makes it impossible to work that way in c++

joachimmarder pushed a commit that referenced this issue Dec 12, 2015
* Moved initialization of global variable Watcher also to InitializeGlobalStructures()
* Now ensuring using interlocked function that InitializeGlobalStructures() is executed only once
joachimmarder pushed a commit that referenced this issue Dec 12, 2015
@joachimmarder
Copy link
Contributor

I removed the dependency of the designtime package on the runtime package, that way the runtime package can stay a runtime package. I my tests with C++ Builder XE7 and XE8 it was now working again at designtime, compile-time and runtime.

joachimmarder pushed a commit that referenced this issue Dec 12, 2015
@joachimmarder
Copy link
Contributor

Another C++ Builder user just confirmed that these changes fixed the problem for him. The version was XE7.

@dcembala
Copy link
Author

Yes i can confirm it's working here too.

@dcembala
Copy link
Author

Although this project and plain virtual tree works i think there is still something wrong with this package configuration. The problem shows when i try to make my own tree component whitch inherits from virtual stringtree in separate package. Whent i try to install new package there is an error:

vt_err

I think it's because all the units from R package are also in D package and that makes impossible to make another package with component inherited from virtual tree.

@joachimmarder
Copy link
Contributor

This is a result of the workaround I used. It should work you make you designtime package depend on VirtualTreeCD, not VirtualTreesCR.

@dcembala
Copy link
Author

I tryied that but i get the same error just insetead 'VirtualTreesCR' there is my package name. The funny thing is i dont even include Virtualtrees.classes in my project i only use #include "VIrtualTrees.hpp" and add VirtualTreeCD as reference in requires section of project

@joachimmarder
Copy link
Contributor

I'm sorry, but I myself don't use C++ Builder and the original problem is a bug in C++ Builder. Please try to get support from Embarcadero. Everything is working if you use Delphi packages, but this is only possible if you have a license of RAD Studio.

ValtsS pushed a commit to ValtsS/Virtual-TreeView that referenced this issue Jan 25, 2019
* Moved initialization of global variable Watcher also to InitializeGlobalStructures()
* Now ensuring using interlocked function that InitializeGlobalStructures() is executed only once

# Conflicts:
#	Source/VirtualTrees.pas
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants