Page 1 of 1

Help Please ! DCC32 and RTL problem...

PostPosted: May 22nd, 2006, 8:20 am
by ni_muttley
We have a large existing application that originates in Delphi 5, and has been ported to Delphi 2006.

The application is highly flexible for customers, and has hundreds of forms, to reduce the overheads of the exe the product is shipped as a small exe, and 2 bpl files, one containing the core functionality and the second the client specific functionality.

We use DCC32 to build the final build for customers, this is where we have now encountered our new problem; everything seems to build ok, and runs on a machine with Delphi installed... but running on a non delphi PC we get an error message telling the user thet rtl100.bpl cannot be found. This was never the case before we ported to Delphi 2006...

Obviously we can ship all of the RTLs, but this is a far from acceptable resolution, to a problem that wasn't there before the move to D2006.

Any help will be very much appreciated, as we are due to release this software very soon,

Thanks in advance

J

PostPosted: May 22nd, 2006, 10:51 am
by Johnny_Bit
I see one good exit from this situation, instead of bpl use DLL for core and client and you'll have small exe. Situation You've mentioned is typical for D2k6, so try my advice as it's universal solution for most of that kind of problems.

PostPosted: May 22nd, 2006, 9:11 pm
by werdnareid
locating rtl100.bpl on your development system and Distributing it with your exe may also be a good choice.

PostPosted: May 23rd, 2006, 8:14 am
by ni_muttley
Hi Guys,

Thanks for the comments, it is much appreciated. Unlike other boards at least someone has replied.

The DLL option unfortunately is not an option the company wishes to take, a decision made sometime before I worked here, after some lengthy process of discussions.

The shipping of the various bpl files is a possible option, however not the best option to ship all of the runtime to all customers, but it may have come to this.

Any other thoughts, suggestions, recieved gladly.

:shock: :!: :?: :idea:

PostPosted: May 23rd, 2006, 10:54 am
by Kambiz
You have three binaries (one exe and two bpl files) which use same rtl/vcl library. I think it's better for reducing the size and speeding up application's startup, build all binaries with run-time packages.

It means not only distributing rtl100.bpl but also distributing all other requitred run-time packages. ;)

PostPosted: May 23rd, 2006, 4:48 pm
by werdnareid
your choices in my experience are on the table,


1: you could rewrite using dlls instead of bpl (which is out of the question).

2: you could compile your a apps statically. This will compile into your exe most but not all of what you need to run your program (this may allow you to distribute a smaller number of bpl files with your exe files). The issue with this is; your exe files will execute and run slowly.

3: you could compile your apps with dynamic runtime linking. This will force you to distribute more bpl files but your application will run faster.
If you go with options 1 or 2 you should use an installer program like install shield that will find the bpls files for you; so when you make a change to your exe the install shield will pick up the dependencies for you and all them in

PostPosted: May 24th, 2006, 8:32 am
by Johnny_Bit
my experience with huge programs shows that building with bpl separatelly doesn't speed up app, it may even slow it down in some exceptions. It depends. Besides, take a look at this: when building with bpl you got tiny exe(say it's 300KB) and have to ship about 10 bpl's(each one about 3-4MB), other way is you do it staticly, exe is about 3-4 MB, still worth the deal? well another one sometimes practiced by me, dlls cross referenced by many of my apps, exe is about 1MB, few dlls (10KB up to 500KB) but used by many apps; to sum up:
1st opt package: 30.3MB
2nd: 3MB
3rd: ~4MB (but usability with other apps, propably cuts stuff down to 1MB)

what's the best in size?

PostPosted: May 25th, 2006, 6:07 am
by werdnareid
since you mentioned it, how do you use your dll's?
i have had lots of problems working with dll's in MDI programs. i found out storing forms in dll's for MDI programs will not work, etc.

What portions of your applications do you put in the dll? and in this case one might not be able to Substitute the feature that the bpl gives for dll’s which lacks or does not offer those feature. Example the storing of forms and other components.