Problems With DLL Files
- Viruses can corrupt the DLLs on your computer.virus alert image by Pontus Edenberg from Fotolia.com
DLLs are Windows-based miniature programs that perform different tasks. Unlike executable files, DLLs do not run as standalone software. Windows and other applications use DLLs to help them perform their tasks. When a program cannot execute a DLL that it needs, the program may malfunction or fail. DLL problems have several causes. - Computer viruses attack different types of executable programs including .exe, .com and .dll files. Once installed on a system, viruses make unwanted changes to the operating system and sometimes corrupt essential DLLs. One DLL that viruses often attack is User32.dll. Windows needs this file to manage menus and perform other critical system-level tasks. If a virus modifies User32.DLL or corrupts it, users must replace the file or use a Windows restore feature to return the operating system to its original state.
- A missing DLL is often more disruptive than a corrupt one. A DLL can disappear if a user accidentally renames the file, deletes it or moves it to a new location on the computer. If a program attempts to reference a DLL and cannot find it, the program will crash or display an error message such as "missing DLL." A user can sometimes download a missing DLL from an Internet DLL site and copy it to the appropriate location on the hard drive. If a Windows DLL disappears, a repair installation of the operating system may correct the problem. A repair installation, unlike a clean installation, retains personal files and replaces only system files and DLLs.
- Software developers constantly enhance their programs. These programs usually reference multiple DLLs. If an updated program references an updated DLL, the program may malfunction if a user does not install the new version of the DLL in the correct folder. Software developers cause DLL versioning problems by creating installation programs that fail to update existing DLL files correctly. Working programs can also "break" when a user installs an unrelated application that causes a versioning problem with a DLL that both applications share. Programmers refer to this condition as Dll Hell. Newer technologies, such as Microsoft's .NET platform, reduce these problems by employing stricter versioning policies.