I'm currently looking for a way to open any named exe file and read it to determine the version of a named activeX dll that it needs. Basically we have over 200 programs in our system but some versions of the programs are using a different versions of our main dll. It'd be handy if I could write a program that knew which dll an exe needed. Part of the problem seems to be that the only named dll compiled into our exes is the msvbvm60.dll (
vb run-time dll) which the program needs to run. Any other dlls references aren't listed as straight text within the exe which is why I can't find them. Any ideas on how to look for it? I can determine the version of the dll by reading it alright (I'm not looking for the version number as this is unreliable but a particular piece of code that is used by the later version of the dll). Like, if the program crashes when we have the wrong dll, it should be possible to perform the check without running the exe.
I've already checked the MSDN (it's always a pain finding stuff in there) but exe format is not Microsoft's. Exes are formatted in a type called Portable Executable (PE) format and are used by Os2, Unix, Linux, Macintosh, Windows and several other OS's. Believe it or not, the layout of all these exe files are the same.
I've tried opening the exe in notepad, hex editors and I've also used the Depends.exe utility by microsoft - they all only see the msvbvm60.dll. I know the info is in there but I can't figure out where. It might have something to do with howreferences to COM objects are stored within the exe but I'm not sure.
Does anyone have any ideas? Please Help :(. Thanks
Jam Junky