Solved

VB runtime files

Posted on 2000-03-19
22
175 Views
Last Modified: 2010-05-02
I have a small open source app I've compiled under VB6. I'd like it to be runable from a network share without installing dependancy files on the clients, it needs the jet database stuff as well for connecting to an access database in the same path. Is this possible ?
App is here : http://www.castleinfo.co.uk/stealth.php3
Thanks in Advance.
0
Comment
Question by:castleinfo
  • 7
  • 7
  • 4
  • +3
22 Comments
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
Sorry, but No it isn't!

Since VB doesn't support static linking, all the required files cannot be included in the EXE and then requires these files to be registred. The easiest way to register the required files is to build a setup package (with Package and Deployment wizard) and install it on user's PC.
0
 
LVL 14

Expert Comment

by:wsh2
Comment Utility
As long as your clients have either MicroSoft Binder or Internet Explorer to act as containers.... Convert your program to an ActiveX Document.

VB6 provides a wizard that is fairly straightforward. With the exception of a few form idiosynchrocies (eg. load/unloads have to be converted to show/hides).. most programs port straight over... <smile>.
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
You may put ALL the vb runtime required files into the same folder that the .EXE file, this should work.
App.Path is the first path dll's are looked up.
0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
angelIII,

You surely never tried it! It is impossible that it works if required files are not REGISTERED. Placing them in the same folder doesn't installs them.
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
emoreau: I did try it!
FYI, if an application cannot find a dll in the registry, it looks to find it in the application path, and then in the directories specified in the PATH environment variable.
0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
I'm sure not. Unregister MSVBVM60.dll and launch one of your app.
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
After i put MSVBVM60.dll and all the other dll into the path of the EXE it does work.
I did it (on a PC with no VB/OFFICE and so on), (smile) so if somebody has to try, it's you (wink) or castleinfo
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
To install all the files necessary, i used a standard Package Wizard, specifying for ALL the files the ($AppPath) Destination.
The only problems i had where thinks like ADO (not yet resolved).
0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
Deploying the package built with PDW (using Setup.EXE), copies and REGISTER files. Registering is more important than the location of the file.

Registering them place an entry in the Registry telling where to find the files.

What castleinfo wants is to start the app .exe without installing it. If the registry is not set with the components (vb run-times and others), the app won't start (error 429 will occur).
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
Making it clear, what i do is:
1) Write the app (obvious)
2) Compile the app (obvious)
3) Package the app (obvious)
After this step, there is a folder called Support in the setup folder.
4) Copy this complete folder onto your Server
5) launch your app from the client
6) It works (hurray)

emoreau: Grrr, i don't like Experts that don't try before critizising others (grin)

castleinfo:
you will naturally have to check all the dependencies of your project, and copy them to the folder. Things like ado will have to be installed whatsoever.
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
emoreau:
FYI, even if a dll is registered lets say in the system32 folder, and another version of it is in the app.path folder, then that dll is used, ignoring completely the registry !!
Get back to your books if you don't believe, but registry has been added later to enable sharing of files.
Cursious enough, for Win2000 Microsoft recommends not to use System32 to locate your dll's (i think they got more problems with shared dlls than they thougt beforehand)
Greetings




0
Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

 

Expert Comment

by:ocsscott
Comment Utility
There is a product called fusion that compiles all runtiles, dll and ocx's into 1 larger exe that just runs with no install.  the webiste for it is http://www.bit-arts.com/

it cost 199 i think but its great they have a 30 day demo on the site.
0
 

Author Comment

by:castleinfo
Comment Utility
Hi thanks for all of your comments, I've been away for a couple of days hence the lack of response.

The app needs to connect to an access database therefore putting all the files in the source directory gives error 429 or similar.

Fusion sounds interesting but my product is opensource...

I think I'll stick with Vb5 as most machines have this dependancy installed allready.

The Active X thingy is that easy ?

0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
Comment Utility
When speaking of the files
0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
Error 429 means that one of the component can't be accessed because it is not registered!
0
 

Author Comment

by:castleinfo
Comment Utility
Sorry, I tried this and it won't work 'cause DAO3.5 isn't registered etc.
0
 
LVL 9

Expert Comment

by:GivenRandy
Comment Utility
No can do.
0
 
LVL 69

Expert Comment

by:Éric Moreau
Comment Utility
GivenRandy,

Please change your answer to a comment since you didn't bring anything new on what we already said!
0
 

Author Comment

by:castleinfo
Comment Utility
Rejected for obvious reasons...

Does Delphi have this problem ? I heard that it produces static exe's ?
0
 
LVL 9

Expert Comment

by:GivenRandy
Comment Utility
Thank you, emoreau.  I have been looking for any obnoxious (i.e., wrong) answers I may have posted.  Unfortunately, we do not have an easy way to find them (yet).  I can easily find questions I have asked or my answers that have been accepted, but I cannot find the ones that I answered but are pending without doing exhaustive guessing in the searches.

Again, thank you.  Sorry for the inconvenience.
0
 
LVL 69

Accepted Solution

by:
Éric Moreau earned 100 total points
Comment Utility
Delphi and C++ and possibly others are able to generate a EXE that is self-contained (means no dependency required).

Are you willing to learn a new language just no to distribute dependencies!

Also like oscscott told, http://www.bit-arts.com/ have a solution (that I didn't used - anybody did?).
0
 

Author Comment

by:castleinfo
Comment Utility
OK I think I'll try delphi... no harm in learning a new language...
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Article by: Martin
Here are a few simple, working, games that you can use as-is or as the basis for your own games. Tic-Tac-Toe This is one of the simplest of all games.   The game allows for a choice of who goes first and keeps track of the number of wins for…
You can of course define an array to hold data that is of a particular type like an array of Strings to hold customer names or an array of Doubles to hold customer sales, but what do you do if you want to coordinate that data? This article describes…
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

743 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now