RSS
Follow us on:
  • Recommend:
  • 0 Comments

Say Good-Bye to Windows Crashes

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.

I played with an early beta of DLLChecker, and it worked fine. The $10 program should be available at www.VB2Java.com or on FileWorld by the time you read this.

Premiering next month on Bass-TV: World's Scariest Windows Error Messages.


SUMMARY
DLLChecker



$10 list
www.VB2Java.com

Would you recommend this story? YES NO

Subscribe to the Daily Technology News Newsletter - 7 days a week

See All Newsletters »
All PCWorld Blogs

Subscribe to the Daily Technology News Newsletter - 7 days a week

See All Newsletters »
Today's Special Offers