IDG logo

Advertise with InfoWorld

SiteMap News Test Center Opinions Forums Careers Stock Quote Subject Indexes About Us Search Subscribe Home [Window Manager]

January 12, 1998

Here are new ways to avoid DLL hell on your desktop

Last week, I wrote about ways that Microsoft could eliminate DLL hell in its upcoming Windows 98. In this week's column, I'll describe one of the more recent outbreaks of DLL hell -- and how you can avoid it.

Microsoft Visual C++ 5.0 ships to software developers with two different DLLs that have the same name. One file, known as CTL3D32.DLL, runs under Windows NT. The other, also named CTL3D32.DLL (but located in a different folder on the C++ CD-ROM) runs under Windows 95. The name conflict creates headaches for PC users.

Many developers are not aware that CTL3D32.DLL comes in two incompatible forms. When they ship products with one file or the other, the new DLL causes programs that depended on an earlier version to quit working. The user usually gets one of Microsoft's patented, meaningless error messages.

  • Some older versions of applications from Intergraph -- including IPlot, Vermanager, and the IntelPro 100B network driver -- install Version 2.31 of CTL3D32.DLL but for the wrong OS. Windows applications that use this DLL then fail to run, displaying a message such as, "This application uses CTL3D32.DLL, which is not the correct version. This version of CTL3D32.DLL is designed only for Windows NT systems."

  • Version 2.31 of the two DLLs are dated May 18, 1997 (for Win95) and May 30, 1997 (for NT). But the Web site for Norton Utilities 1.0 for Windows 95 ( actually recommends that you delete any CTL3D32.DLL dated later than Aug. 3, 1995 -- such as the one that comes with Microsoft Office 97 -- and reinstall Norton Utilities so it can write the version of the DLL that it likes. The Web site for Norton AntiVirus for Windows 95 (, by contrast, recommends that you "search your hard drive for CTL3D32.DLL and rename any copies," then install Norton AntiVirus.

  • Hewlett-Packard's Web site says HP's TWAIN scanning software for the ScanJet 5p, OfficeJet Pro, DeskScan, PaperPort, and other scanning devices is compatible only with Version 2.29 of CTL3D32.DLL, not Version 2.31. (See

  • The setup routine for Visio 5.0 completely deletes CTL3D32.DLL (for no apparent reason), but only under Windows 95 and only Version 2.31 of the DLL. When I tried this on a test system, applications complained "CTL3D32.DLL is missing." It sure was -- I couldn't even find a copy in the Recycle Bin.

  • Microsoft does it, too. When you install the Microsoft Natural Keyboard 1.0 software on Windows NT 4.0 or 5.0, an older version of the DLL is installed. The Exchange client reports, "Microsoft Exchange has detected an incompatible version of CTL3D32.DLL."

The solution is to get the correct flavor of CTL3D32.DLL 2.31. The 26,624-byte Win95 file should be copied to your Windows\System folder. The 27,136-byte file for NT should be in WINNT\System32. Only one copy of a file with this name should be present on your hard drive.

Zip files containing these two versions for Windows 95 and Windows NT are available at The site's author, Chuck Williamson, includes background information and users' comments on the problem. Good luck.

Brian Livingston is the co-author of several best-selling Windows books, including the most recent Windows 95 Secrets (IDG Books). Send comments to Unfortunately, he cannot answer individual questions.

Missed a column? Go back for more.

Copyright © 1998 InfoWorld Media Group Inc.


Copyright © 2002. InfoWorld Media Group, Inc. is a member of complies with the ASME guidelines with IDG extensions For New media.