Click to See Complete Forum and Search --> : How come .EXEs made with Vb requires runtime DLLs and .EXEs made with Delphi 4 don't
AndyK
December 28th, 1999, 05:58 PM
I have expirienced that I have small program that I made with VB, program size is 16 KB but to run it I need to add all those DLLs which bring my little program from 16 KB to 1.5 MB!!!! Why Delphi 4 doesn't require any special DLLs with it's executables. Will VB ever be the same way as Delphi 4.....no required DLLs???
FWALGMan
December 28th, 1999, 10:46 PM
I hope so. As far as I understand it VB is not a truly compiled language. I could be wrong about this. So, anyway, you need to include the Runtime Libraries for any .EXE "compiled" in VB to run. Anything else you need to include is common to all languages -- external libraries, etc..
Gary Grant
December 29th, 1999, 02:11 PM
Actually VB6 produces "TRUE" executables. It is also capable of producing p-code compiles. The so-called "runtime" just means that some of the VB language is in the DLL. (I believe that it also contains the p-code interpreter which is probably why it is so large).
Crazy D @ Work
December 30th, 1999, 02:04 AM
True, hopefully they'll add the option to compile for use without runtime in the next version.
But, the bright side is, you only need the runtime once :-)
So all those other programs of 16k you want to distribute is just the 16k, not 1.5 mb... (while in C if you use static linking, you'll have most of the times at least 300k.. for every program...)
But yes it sucks we can't link statically....
Crazy D @ Work :-)
January 4th, 2000, 09:02 PM
Does anyone know how to setup the base required dll's or ocx's that must be in the system dir prior to running the exe WITHOUT any setup wizard.
I mean; if you include, let say the msvbvm60.dll within the same folder as the exe, thing seem to go ok. But you can't do this with the 'oleaut32.dll' and some of the others. To run a vb 6 version you need the latest version of this dll, so you have to do a setup or a ugly wininit.ini modification with a reboot before running your app. There must be a way somewhere in all that API to use the local one. I tried the RegMyServerObject API, but it doesn't work with these ole dll's or some of the common control dll's or ocx's. The problem only arises with a vb 6 build trying to run on a Win95 machine without the service packs. Any ideas.
Crazy D
January 5th, 2000, 12:30 AM
You better make a setup... if the ole dll's are out of date on the target machine, it must reboot before your vb program will run
Crazy D :-)
"One ring rules them all"
wilton
January 5th, 2000, 01:40 AM
Is there a "universal" setup utility for VB6 or do you need to "write" your own? How do you know which files you need to include?
Chris Eastwood
January 5th, 2000, 02:48 AM
There's the Package and Deployment Wizard (PDW) that comes with VB6 / Visual Studio - it's still crappy but a whole lot better than the versions that came with earlier versions of VB. Of course you could always pay for InstallShield or any of the other installation packages (Wise etc).
The PDW scans through your project and identifies all the DLL's that your program depends on (most of the time :) )
There are a couple of FreeWare Installation programs on the net that do quite a good job - see FreeMan Installer at http://netnet.net/~freeman/ - unfortunately it doesn't (or didn't last time I used it) scan through projects for dependancies, but has it's own built in 'scripting language' (of sorts) so is pretty customizable. It's good for small DLL's / App's where you know that the end user already has the runtimes and other required DLL's
Chris Eastwood
CodeGuru - the website for developers
http://codeguru.developer.com/vb
wilton
January 5th, 2000, 02:11 PM
Where is the PDW? I looked for it before, but couldn't find it.
AndyK
January 6th, 2000, 02:57 PM
Goto your start menu and in Microsoft Visual basic 6 look for Package & Deployment Wizard, if VB5 then look for Application Setup Wizard
wilton
January 6th, 2000, 03:07 PM
Sorry, I forgot to post that I had found it. In VB6, it's located in the add-in manager.
Arvind
January 8th, 2000, 04:02 PM
Hello,
I would like to thank all that showed an interest in my questions. Yes, I did not have a login when I asked 'How to publish without a setup', I was the Anonymous.
My problems will not be solved by the PDW or, for that matter, InstallShield.
The problem is our company produces a extensive software and has handed me the task of doing away with the Installer softwares. We need flexiblity at install-time and the Installers are not 'cuttin it'.
I did however find some solutions:
First, I created a wrapper APP in VB5 to get us of the ground. Since, must PC's now have the base dll's and/or ocx's to run a VB5 APP that only calls the must basic VB runtime support.
Second, I was able to find a Service Pack for Vb6 Runtime support on the Ms site. This SP is the first call made (FOR FIRST TIME INSTALLATIONS) through the VB5 APP. OFCOURSE, the setback is that you must reboot the system. (We could get around this by rebooting the PC and using 'RUN ONCE', but we'll leave this for another time.)
At this point, the user will have to re-invoke the setup APP. It will skip over the SP and call our installer, written in VB6.
NOTE: There is another problem with the comctl32.ocx actually any dll for that matter. You see, this lib is not included in the SP and you can bet that a version of this is on all PC's. So I send this in the local media and disable the system version in the VB5 wrapper, forcing the VB6 part to use the latest local version. When the Installation is complete. I re-enable the system one (All I do is rename it!). I could, I guess register the new one at this point with REGSVR32.
Thanks Again,
Arvind
codeguru.com
Copyright Internet.com Inc., All Rights Reserved.