When you’re troubleshooting a problem with either a Windows OS or an application, chances are that the culprit is a missing DLL file. The file may have been accidentally deleted, or worse yet, overwritten by another version of the same file during an installation procedure. Microsoft has done a good deal of work to insulate DLL files from disaster with the System File Protection scheme (a.k.a., Windows File Protection) in Windows Me and Windows 2000 and with the new side-by-side component sharing technology in Windows XP. But no matter what operating system version you support, you can still find yourself in DLL hell.
To quickly and easily troubleshoot DLL problems, you can use an excellent resource available on the Microsoft TechNet site called the DLL Help Database. This comprehensive searchable database helps you identify Microsoft DLL files by version as well as date and also lets you know which application installed the DLL.
Accessing the DLL Help Database
Getting to the DLL Help Database on the Microsoft TechNet site is easy. At the TechNet home page, just scroll down the menu on the left and select the Troubleshooting & Support link. On the Online Support for IT Professionals page, click the DLL Help link, which you’ll find under the Resources | Troubleshooting section. You’ll then see the DLL Help Database, as shown in Figure A.
|The DLL Help Database can help you quickly track down detailed information on Microsoft DLL files.|
The default search form is configured to allow you to search By File Only. However, there are two other options on the Search drop-down list that you can use to configure your search of the DLL Help Database—By Product Only and By Product + File.
Let’s take a closer look at how you would use these different search options and what type of information each option reveals.
For more information on troubleshooting DLL problems in Windows 98, click here.
By File Only
The By File Only option is probably the most common way to search the DLL Help Database. It reveals all versions of a particular DLL file. Simply type in the name of the DLL file in the File Name text box and click the Submit button. (Of course, if you’re using a non-English version, you’ll need to select a language from the drop-down list.)
You can also use wildcards to aid you in your search. However, keep in mind that in order for the wildcard feature to work properly, the search string must begin with a letter and end with the asterisk (*).
For example, suppose you’re having a problem with a system and have tracked it down to a couple of DLL files that begin with W32. If you type W32* in the File Name text box and click the Submit button, you’ll find the results displayed at the bottom of the page, as shown in Figure B.
|Once you initiate a search, the results are displayed at the bottom of the page.|
The results show all of the Microsoft DLL files that begin with W32. You can then see the version number for each file and a brief description. Clicking the More Information link shows more specific details about that particular file. For example, when you click the More Information link for the file W32.dll version 4.0.1372.1, you’ll see the window shown in Figure C.
|Clicking theMore Information link will show you specific details about a particular file.|
In this case, BackOffice 4.5, Windows NT 4.0 Server, and Windows NT 4.0 Workstation all install the W32.dll file. You can also see the size of the file, the last modification date, and the directory on the installation CD in which you can find the original file. While in this particular example the CAB/IEXPRESS column is empty, for other files, this column will list the cabinet or self-extracting executable file on the installation CD that contains the file.
By Product Only
The By Product Only search option provides you with another way to analyze and troubleshoot problems caused by DLL files, as it will display all the files that are installed by a specific Microsoft application—including DLL and EXE files. For example, suppose that you’ve uninstalled an application and have subsequently discovered that another unrelated application is now starting to act buggy. Using the By Product Only option, you can get a list of all the files used by the application that you just uninstalled. You can then use that list to cross-reference the files used by the other application to see if any of the same files are used by both applications and which versions are installed by each.
When you choose the By Product Only search option, the page will reload and display two more drop-down lists so that you can choose a product name as well as a version. Once you make your selections and click the Submit button, you’ll see a list of all the files, as shown in Figure D.
|Having a list of all the files installed by a Microsoft application can be a big help in cross-referencing files used by multiple applications.|
Time out problems
As you’re searching the DLL Help Database, keep in mind that the results are dynamically compiled and displayed for each search and can time out. In other words, if the initial results display is on your screen for a lengthy period of time, the pages accessed by the More Information links may yield Page Not Found error messages. If that happens, simply click the Submit button again to refresh the search results.
By Product + File
If you happen to know the name of the DLL file and the application that it comes with but need to check the version number and last modification date of the file that was originally installed with the application against the one now on your system, you can use the By Product + File search option. Exercising this option brings up a page that contains drop-down lists so you can choose a product name and a version, and includes a File Name text box. Once you make your selections, click the Submit button to view the results.
When the DLL Help Database displays the results of a search, it sorts them by filename. You may want to sort the results by version number, but unfortunately, that feature isn’t built into the page. However, I’ve discovered that if you select and copy the entire table displayed by the search result, including the headers, and then paste it into an Excel spreadsheet, you can easily sort the results by version number.
Cross-referencing in the Knowledge Base
As you’re using the DLL Help Database to gather more information on a suspicious DLL file, you may want to cross-reference the file on the Microsoft Knowledge Base. Just use the DLL filename as your search keyword. (You can also access the Knowledge Base from the Online Support for IT Professionals page on the TechNet site.)
Keep in mind that the Knowledge Base isn’t specifically designed to help you identify system files. But if the file you’re investigating has been documented as being involved in any system problems, it will be listed in the Knowledge Base. If it is listed there, any reports containing information about the file should lead you to a solution to your specific problem.
Your ticket out of DLL hell
When your troubleshooting expedition leads you in the direction of DLL hell, one of the best places you can go to find information on sorting out the problem is the DLL Help Database on the Microsoft TechNet site. The database helps you identify Microsoft DLL files by version as well as date and leads you to which application installed the DLL.