September 16, 1996
Handling DLLs the Microsoft way: improperly
For the past two weeks, I've described ways you can reduce the incidence of crashes (known as General Protection Faults) in your system by eliminating DLL (dynamic link library) conflicts. The basic idea is to search your hard drive(s) for *.DLL files, then make sure that the latest versions are in your Windows\System folder and in only your System folder.
There are exceptions, particularly for WINSOCK.DLL, which you should leave alone. Follow the directions in my past two columns before you experiment.
This week, I need to give you some information on a bizarre interaction that affects Microsoft Corp. applications.
Older versions of Microsoft Office and some other applications are picky about the DLL versions that they will support. According to Microsoft document No. Q111089, this problem affects the following products: Microsoft Office 4.0, 4.2, 4.2c, 4.3, 4.3c; Excel 5.0, 5.0c; Word 6.0, 6.0a, 6.0c; PowerPoint 4.0, 4.0c; Project 4.0; and Visual FoxPro 3.0.
You'll know you have a DLL conflict if you see the error message "Application Error, Call to Undefined Dynalink" while you are starting or running these applications. You may also see the longer message "The server application, source file, or item cannot be found. Make sure the application is properly installed, and that it has not been deleted, moved, or renamed." Like many Microsoft error messages, these two are totally unhelpful to the average person. In the first place, what the heck is a dynalink? And the second message, of course, you get only when your applications have been correctly installed.
The problem is that Microsoft has released different versions of its shared DLLs, and it has released identical DLL versions that have different date stamps. When you install a new application that also uses one of these DLLs, it has the capability to install a version of a DLL that is older than the one the other applications support.
You would expect that installing an older version of a DLL would cause problems. The older version may not have a programming call that the newer version supports. (This is what an "undefined dynalink" means.) Installing a newer DLL, however, shouldn't cause any problems. But the Microsoft applications named above often will not run with a DLL that is newer than the version they support.
For example, the DLL called OLE2NLS.DLL used by the above-named Microsoft applications is Version 2.01. According to Michael Green, a senior network analyst for Paranet Inc., in Houston, who has tracked this particular DLL problem, Microsoft Office 4.3c cannot use OLE2NLS.DLL Version 2.02 -- a DLL that Microsoft itself has developed.
Making matters worse, Microsoft has released Version 2.01 of this and several other DLLs in the different packages named above with no less than five different sizes and 14 different date stamps going as far back as Dec. 13, 1993. (To see the version number in Windows 95, right-click the DLL in the Explorer, then click Properties, Version.)
But wait, there's more! If Office Manager is running, and you install a new application, Windows won't install the updated DLLs that the application needs -- and Windows will not give you any error message.
What's the answer? Maybe you could upgrade to Office 95, but that seems like over-kill and isn't a guaranteed fix. Microsoft needs to build a solution so DLLs work -- period.
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