home *** CD-ROM | disk | FTP | other *** search
- DLLManager
- ==========
-
- Before We Begin...
- ------------------
-
- Required DLLs not supplied with the small download version:
- VBRUN100.DLL VB runtime DLL
- CMDIALOG.VBX Common Dialog control (from VB PTK)
- CMDIALOG.DLL Common Dialog DLL (supplied with Win 3.1)
- TOOLHELP.DLL Windows low-level analysis DLL, can't remember whether
- it comes with Win 3.1 or the SDK.
- THREED.VBX 3D control (from VB PTK)
-
- If anyone wants any of the above, and it's legal to do so, I'll prepare a
- long version of the download file with all the runtime DLLs. (Let me jsut check
- the license agreements...)
-
- To run this app you must have the above files installed somewhere on your path.
- A small DLL, VBWINGTS.DLL, supplied with this download, should also appear
- on your path.
-
- I recommend the files on the list go to WINDOWS\SYSTEM, while the latter goes
- into some miscellaneous DLL directory (personally I hate having DLLs which I
- may want to remove one day in critical directories).
-
- This app has not been tested on Windows 3.0. I haven't used it for over a year
- and I don't intend to start now!
-
- How To Use It
- -------------
-
- When run from Program Manager (no guarantees for other shells!), a list of
- all installed DLLs (optionally including .EXEs, .FONs, .VBXs, .XLLs and .DRVs)
- is displayed. Use the Options menu to specify which.
-
- To remove a module, click on its path name and then hit the Remove DLL button.
- The program performs 10 FreeLibrary() calls. If the little fellow is still on
- the list after that, try it again. If it still won't go, there's something about
- loading modules that I haven't learnt yet...
-
- To load a module, use File/Find... to select it, then hit Load DLL. That should
- be it. Again, if it doesn't show up, there's something funny going on, but hey,
- I'm not charging anything...
-
- To pre-load a module, select Startup... and File/Find to specify modules to be
- loaded next time you enter Windows.
-
- The Startup Option
- ------------------
-
- To automatically load specified modules when you enter Windows, add DLLMGR.EXE
- to your Startup group, adding an S to the command line. DLL Manager will run
- next time you enter Windows. No S? You just get a list of what's loaded so far.
-
- Background
- ----------
-
- We spend a lot of time at work building Windows DLLs, many of which are
- intended to be called from Excel. In the way of these things, bugs occur...
- We discovered that Excel, when crashed, doesn't unload all its DLLs,
- CROSSTAB.XLL being the particular culprit. So, once a bug was discovered, we
- had to exit Windows in order to remove the offending DLL from memory. When
- this is happening every 10 minutes or so it starts to get really annoying.
-
- So I had the bright idea to write a little VB app to do my unloading for me.
- It worked so well that I became incredibly popular. But users, especially
- developer users, are fickle, and I soon got requests for enhancements, like
- a general DLL loader/unloader. So I built version 1 of DLLMGR. This got me
- into TOOLHELP, a thoroughly useful module. I had to write a small C DLL,
- VBWINGTS to let me use the TOOLHELP structures: it was easier than trying to
- decipher structures with embedded character arrays.
-
- Version 2 came about when I decided that it would be nice to have the app load
- specified DLLs when Windows loads, to ensure that they stay resident all
- through the session.
-
- So here it is. If it's useful, great. Use it with care - there are all sorts of
- ways to use it to crash Windows by unloading DLLs that are in use...
-
- Known Faults
- ------------
-
- It appears that finding and loading a second file in the same run doesn't do
- anything. I haven't yet figured out why. No damage is caused, you just have to
- re-run to load a second DLL.
-
- Outro
- -----
-
- If you have contructive(!) criticisms, other bug reports, praise, suggestions
- or other communications, I'd be happy to read them. Straight email to the
- CIS address below will probably get to me quickest; I'm online most days.
-
- Mike Woodhouse
- 100023,604
-