Help Please ! DCC32 and RTL problem...

Please discuss general Delphi programming topics here.

Help Please ! DCC32 and RTL problem...

Postby ni_muttley » May 22nd, 2006, 8:20 am

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
ni_muttley
Member
Member
 
Posts: 2
Joined: May 22nd, 2006, 8:16 am
Location: Belfast

Postby Johnny_Bit » May 22nd, 2006, 10:51 am

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.
Johnny_Bit
VIP Member
VIP Member
 
Posts: 455
Joined: June 15th, 2003, 9:56 am

Postby werdnareid » May 22nd, 2006, 9:11 pm

locating rtl100.bpl on your development system and Distributing it with your exe may also be a good choice.
werdnareid
Active Member
Active Member
 
Posts: 22
Joined: August 6th, 2003, 5:35 pm

Postby ni_muttley » May 23rd, 2006, 8:14 am

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:
ni_muttley
Member
Member
 
Posts: 2
Joined: May 22nd, 2006, 8:16 am
Location: Belfast

Postby Kambiz » May 23rd, 2006, 10:54 am

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. ;)
Kambiz
User avatar
Kambiz
Administrator
Administrator
 
Posts: 2429
Joined: March 7th, 2003, 7:10 pm

Postby werdnareid » May 23rd, 2006, 4:48 pm

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
werdnareid
Active Member
Active Member
 
Posts: 22
Joined: August 6th, 2003, 5:35 pm

Postby Johnny_Bit » May 24th, 2006, 8:32 am

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?
Johnny_Bit
VIP Member
VIP Member
 
Posts: 455
Joined: June 15th, 2003, 9:56 am

Postby werdnareid » May 25th, 2006, 6:07 am

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.
werdnareid
Active Member
Active Member
 
Posts: 22
Joined: August 6th, 2003, 5:35 pm


Return to Delphi Programming

Who is online

Users browsing this forum: No registered users and 6 guests

cron