Error with DLL
Hello.
First of all, let me explain our structure. We have 8 DLL to print
reports, each one print a different report with different tables. When I
open a DLL and print the report, as goes well. But when I open a second
DLL after, I got this error:
Exception EFilerError in module rtl100.bpl at 0002F867.
A class named TppDBPipeline already exists.
I cannot just make one DLL for all my reports. Can you help me please ?
Thanks.
JFPicard
First of all, let me explain our structure. We have 8 DLL to print
reports, each one print a different report with different tables. When I
open a DLL and print the report, as goes well. But when I open a second
DLL after, I got this error:
Exception EFilerError in module rtl100.bpl at 0002F867.
A class named TppDBPipeline already exists.
I cannot just make one DLL for all my reports. Can you help me please ?
Thanks.
JFPicard
This discussion has been closed.
Comments
- Build each .dll with the 'build with run-time packages' option selected
and include the RB packages in the list.
- Build the .exe with the 'build with run-time packages' option selected and
include the RB packages in the list.
When the application runs, it should load the RB binaries only a single
time, otherwise you will receive that type of error.
Unless you need to call the DLL's from a non-Delphi app, I recommend putting
your custom code in Delphi packages.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Can you give the list of the packages that I can put in 'build with
run-time packages'? I don't want to send packages that the license
forbids to do so. All my DLL are called from Delphi applications.
Thanks.
JFPicard
From what I understand each dll try to register the ReportBuilder
Components it needs to work properly. Try using getClass() to
test if a dll has already register a class.
Initialization
If Not Assigned(GetClass(TppDBPipeLine)) Then Begin
RegisterClass(TppDBPipeLine);
End;//If
...
PF
--- posted by geoForum on http://delphi.newswhat.com
The ReportBuilder online help containts a list of RB run-time packages for
each RB Edition and Delphi version. (You can re-distribute RB run-time
packages. )
Acess the help, select ReportBuilder Reference | Table Of Contents |
Installation | Delphi X \ Y Edition, where X is the Delphi major version and
Y is the RB Edition you are using.
Rather than DLL's I recommend using Packages. It is much simpler, provides
the same benefits. The Delphi package architecture was a huge break thru in
technology. MS .NET copies that architecture - only they call it Assemblies.
--
Nard Moseley
Digital Metaphors
www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com