Link to home
Start Free TrialLog in
Avatar of bhamilto
bhamilto

asked on

VB5 EXE dependencies

Is there a program that provides dependency information for compiled VB5 executables?  Ideally it would provide module name and GUID for each required activex DLL, OCX, etc.

Is there a program that comes with VB that I have missed?

I've tried a couple of shareware dependency programs but all they show for a VB5 exe is the main run-time library.

Barring the above (and to satisfy my curiousity) where can I find a detailed file format definition for a VB5 exe.
Avatar of Éric Moreau
Éric Moreau
Flag of Canada image

You have Depends.exe that comes with VB and can tell about much of the dependencies.
You better use DLLShow that will detect all the dependency DLLs, OCxs, etc. for your EXE. You just have to run the EXE and you can see all its dependencies. A great advantage of DLLShow over Depends.exe is that DLLShow will show you DLLs, OCXs, etc. that are loaded at run-time. Depends.exe will not!
If you can't find it on the net, I can send it to you. Just comment me your e-mail.

Regards.
Can you post the web site address here?
Unfortunately, the program does not mention any URL in the Help -> About menu. I got it from a friend two years ago and it is just an EXE (no setup). So, I can not figure out its origin (URL). However, you can easily make a search a find it.
Avatar of bhamilto
bhamilto

ASKER

Sorry for not being more specific.  DLLShow works fine for running processes, but I can't get this one to run.

When I try to start the program (one with many activeX DLL's and OCX's) I get the error:
"ActiveX component can't create object"
This usually means a component is missing or the wrong version.  I'm trying to track this down to find the missing/bad component(s). ( Thats why I asked for the exe file format as a last resort).

Can't find Depends.exe on the VB5 Pro main CD (including a CAB search).  Are you sure it comes with this version?

Thanks - Bob Hamilton

(P.S. A mid 99 version of DLLShow is available on ZDNet UK if you want upgrade).
As far as I remember, Depends.exe comes with VB6 (not 5).
If you want, I can e-mail it to you (for the points :-)).
Don't forget (as I said previously), depends.exe will not show you any of the DLLs or OCXs that are loaded at run-time. This is clarified within the depends.exe on-line help.
It sounds like Depends won't help either.  Anybody got any ideas?
VBGuru

Tried it.  Unless I missed something this only works for running processes (mine won't run).
I have added this functiunality in my VBIDEUtils addins.
If you want it (still in beta) send me a mail at waty.thierry@usa.net

It displays dependencies for DLL, OCX, EXE, VB projects....
goto www.sysinternals.com

THey have both a tool for win95 and winnt to show the dependencies and their versions.
(I think they are called Dllview and NTHandle)
Mirkwood,
Didn't you read the comments before posting your answer???
Dllview and NTHandle are for running processes. He wants to figure out dependencies for an EXE that DOES NOT RUN.
Regards to all.
kamall said it all.
bhamilto,
     I possible, send me(sirigere@email.com) that exe I will try to give you the list of dependency.
To VBGuru

Thanks for the offer but I'd prefer to find a way to do it myself.  This isn't the first time it has happened to me and probably won't be the last.  

I think it has something to do with installing then uninstalling a VB program which somehow screws up the registry or something.  (I believe I found a Microsoft bug report about the problem but it didn't help to find a fix).  The last time it happened VB was looking for a later version of comctl32.ocx which was fairly easy to determine and fix since it was very wide spread.

Thats the reason I also requested the file format for a VB exe.  I've been able to successfully search for GUID's in the binary for controls that I know are used by the exe.  Unfortunately I don't know all the OCX's and DLL's that are used.
Waty

Does your software work for non-running exe's?
ASKER CERTIFIED SOLUTION
Avatar of waty
waty
Flag of Belgium image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Try using a registry watcher, you can watch which values in the registry are read as it trys to load each activeX components and find the last one it load before it fails (or see the error result when it trys to read the key).

I think the program I use is called regmon (and should be available from download.com or winternals.com).

Even though the program fails to run this should still help you locate the specific component.

It won't of course work for non-activex components.
troywillmot

Good idea - hadn't thought of this approach.  I already have Regmon so I will try it on the weekend (travelling at the moment).

Thanks - Bob Hamilton
Works great.  

Thanks - Bob Hamilton