Say good-bye to Windows crashes
August 2, 1999
by Steve Bass
(IDG) -- It was like an episode of Outrageous Police Chase Videos. Under my PC's hood, deep in a Windows folder, dozens of DLL files were wildly pursuing one another, careening out of control and smashing into my hard drive. After each collision, my system would shudder and crash. And I'd end up staring at a lovely blue screen with an ugly Windows error message.
I'll bet you've had the same problem. Unexpected crashes are a sure sign something's wrong under the hood--something far worse than a bad gasket on your search engine. The culprit is almost always a faulty DLL. Don't sweat it. I have a way to get you out of a DLL traffic jam.
Trial By File
First, a few basics. Dynamic link libraries (aka DLLs) are small programs used by Windows applications. Some DLLs are needed by specific programs and rarely cause problems. Others--the usual DLL troublemakers--are part of Windows itself and are shared by many programs. For instance, commdlg.dll, a "common dialog" DLL, enables other programs to create dialog boxes.
The problem? Some programs dump their own versions of these DLLs--usually outdated, crotchety ones--onto your system. When you launch the program, it loads the old DLL. Even when you quit the app, that DLL hangs around in memory. Later that day, you load another program that uses the same DLL--only a more recent version of it--then wham! The new app gets rear-ended by the old DLL, road rage ensues, and the bits hit the fan.
Windows 98 is supposed to sort out these conflicts whenever you install a new program, comparing DLLs and throwing out the older ones. Trouble is, this does not always happen.
Fortunately, you can get rid of old DLLs yourself. It's a relatively safe task, but even so, back up your system first.
The trick is to search for all the DLLs on your hard disk, find the duplicates, and nuke the prior versions. You can do this by going to the Windows Desktop, hitting F3 to bring up the Find: All Files box, and searching My Computer for all files ending in .dll. (Be sure to search your entire drive, including subfolders.) In the results window, select View, Details and click the Name column heading to sort the files. If your PC is like mine, your drive is filled with duplicate DLLs. Depressing, no?
Now right-click each duplicate file, select Properties, and click the Version tab. The file with the higher version number should be in the \Windows\System folder. If the DLL with the lower version number is in the app's program folder, change its file extension to .d_l. That way, the old version won't load, which will force the program to look in the System folder for the right DLL. (The one place you should see many duplicate DLLs is in your \Windows\Sysbckup folder. Leave those alone.)
Last step: Reboot your PC and load the program that used the older DLL. If it runs, it's probably okay, and you can repeat the process with the next pair of duplicates. If it doesn't run, then restore the original name of the old DLL.
Never a DLL Moment
If all that sounds too complicated, consider getting an application like DLLChecker that'll do the job for you. The program, written by my user group buddy David Jung, scans your PC for DLLs, VBXs, OCXs, and VXDs (say that three times, fast). Then it lists their location and identifies them by size, date, and version. That helps you see the duplicates, compare the versions, and decide which ones to dump. The utility can also archive old DLLs.
Early code shipped for friendlier, family Windows
RELATED IDG.net STORIES:
Can Windows 98 provide some sort of solution to DLL hell?
|Back to the top||
© 2001 Cable News Network. All Rights Reserved.|
Terms under which this service is provided to you.
Read our privacy guidelines.