September 2, 1996
The case of the conflicting DLLs -- chapter 1
The introduction of Windows 95 more than one year ago hasn't prevented applications from crashing. Of course, new features have been added to reduce the number of crashes and their impact on the overall system. For example, Windows 95 allows you to press Ctrl-Alt-Delete and remove a crashed application from memory, using a feature called Local Reboot. But this isn't nearly as good as totally eradicating the dreaded General Protection Fault (GPF).
A GPF usually occurs when an application tries to read or write an area of memory for which it isn't authorized. This can be caused by a 16-bit Windows application inadvertently writing over another application's code or data, causing it to fail. Even a 32-bit application can, in certain circumstances, affect other programs, because Windows 95 is not yet a true, protected OS.
After several months of working with Windows 95, reader Michael Green seems to have found a solution that can help most Windows users. He is a senior network analyst for Paranet Inc., in Houston. He can be reached at (800) 752-3475 or (713) 626-4800. Paranet is a technical service bureau with offices in 20 U.S. cities, and it supports some of the largest corporate networks in the United States with their installations of hardware and software.
Green says that 90 percent of the GPFs he's studied are caused by conflicting versions of DLLs. A number of DLLs, used by almost all Windows applications, come with Windows 95. These files are usually stored in the System folder. Makers of development tools, including Borland International Inc. and others, also supply DLLs to provide even more functionality. Applications install these DLLs, too, into the System folder. Serious problems arise, however, when an application installs an older version of a DLL over a newer version. An application that worked perfectly with MY.DLL, Version 2.3, may cause GPFs at random when forced to use MY.DLL, Version 2.2.
Preventing an older DLL from copying over a newer one is more difficult than it seems, for a number of reasons.
First, DLLs come from a variety of sources: Besides Microsoft Corp. and Borland, numerous other vendors include DLLs with their developer toolkits.
Also, because programmers sometimes redate all the files in an entire software package (to make all the dates the same for each new release), an older DLL may actually bear a more recent date stamp than a newer DLL.
Finally, DLLs (and other executable modules) are supposed to contain an internal version number that remains unaffected by the visible date stamp. You can see this internal version number in most DLLs by right-clicking the file name in Explorer, then clicking Properties, Version. But some programmers ignore this convention. Others use internal version numbers but don't bother to keep them in proper sequence.
Green says replacing older DLLs with correct versions almost completely eliminated the incidence of GPFs in a corporation with more than 400 PCs running Windows 95 across a network (as opposed to running it on a local hard drive).
If cleaning up faulty DLLs can make such a difference in a demanding environment like that, the procedure may also help your small networks or stand-alone PCs.
In the next two weeks, I'll describe a complete procedure to clean out old DLLs and clear up GPFs in your company. Meanwhile, this week perform these two steps only:
Step (1) Click Start, Find, Files or Folders. Remove any floppy disks or CD-ROMs from your system. Look in My Computer for files named .DLL. Click the Name button to sort the list by file name. Make a note of DLLs with the same name in different folders that have different sizes or date/time stamps.
Step (2) Make a complete backup of your system. Don't change any files yet. We'll get to that in my next column.
Correction
Due to an editing error, my column of Aug. 19 began by stating that Microsoft's Internet Starter Kit was "moving in the direction of simplifying Internet browsing." This is not my opinion, and no such conclusion should be drawn.
Brian Livingston is the coauthor of the new Windows 95 Secrets and author of three other Windows books (IDG Books). Send tips to brian_livingston@infoworld.com or fax: (206) 282-1248.
Missed a column? Go back for more.
Copyright © 1996 by InfoWorld Publishing Company