I am trying to incorporate bpl
files that where given to me into my Delphi project. Note that I am given no documentation on what exports these bpl
files contain and which Delphi version was used to generate these bpl
files.
According to other Compile Delphi component package (bpl) for different Delphi versions each bpl
file can only be used by the same compiler that generated it. So if a Delphi 7 compiler generated the bpl
file then only Delphi 7 can import that bpl
file (as far as I understand).
I used Detect It Easy in order for me to determine what was used to generate the bpl
files. It told me that it was Delphi 6 or 7. This was great news since I have a copy of Delphi 7 on my machine.
But when I tried to load any package that was given to me in Delphi 7 via Component -> Install packages to then add the bpl
I always got this strange error:
Cannot load package 'rtl140' It contains unit 'ActiveX' which is also contained in package 'rtl70'
I was a little confused on this error message when I first saw it and since I am new to Delphi I decided to first download Delphi 12 (free trial) and see what will happens if I try and load it up there. I used Component -> Install packages to got this error:
Can't load package The specified module could not be found.
Now what is interesting is that all the bpl
s that where given to me end with the number 140
. What my research told me was that the bpl
was compiled with Delphi 2010. I found this table of Delphi version numbers where under "Package Version" of 140
the "Product" was "Delphi 2010".
I am not sure if I am not loading the bpl
correctly or if I should be using Delphi 2010 for this project. I am new to Delphi programming.
Hello I am trying to incorporate
bpl
files that where given to me into my Delphi project. Note that I am given no documentation on what exports thesebpl
files contain and on what Delphi version was used to generate thesebpl
files.
Then you need to contact the BPL author for more detail.
According to other Stackoverflow post each
bpl
file can only be used by the same compiler that generated. So if a Delphi 7 Compiler generated thebpl
file then only another Delphi 7 Compiler can import thatbpl
file (As far as I understand).
That is correct. BPLs are specific to the particular compiler version that created them. They cannot be used on other compiler versions.
I used Detect it easy in order for me to determine what was used to generate the
bpl
files. It told me that it was Delphi 6 or 7. This was great news since I have a copy of Delphi 7 on my machine.
It gave you wrong information.
But when I tried to load any package that was given to me in Delphi 7 as follows
Component -> Install packages
and then add thebpl
I always got this strange Error.Cannot load package 'rtl140' It contains unit 'ActiveX' which is also contained in package 'rtl70'
The fact that it mentions rtl140
means the BPL was not compiled by Delphi 7. The rtl140
package belongs to Delphi 2010 instead.
Now what is interesting is that all the
bpls
that where given to me end with the number140
. What my research told me was that thebpl
was compiled with Delphi 10. I found this table which under Package Version for 140 was Delphi 10.
You misread the table. 140
is the package version used by Delphi 2010, not by Delphi 10.x (which used package versions 230-270
). 70
was the package version for Delphi 7.
I am not sure if I am not loading the BPL correctly or if I should be using Delphi 10 for this project.
Neither. You need Delphi 2010 instead. Otherwise, you need to contact the BPL author and ask for one that is compatible with your particular Delphi version.