DLLs or Dynamic Link Libraries contain programming codes that can be used and shared between different applications. You can have DLLs with only one or two functions, or DLLs comprising more than 100 functions.
Primarily, there are two types of DLLs on your Windows computer:
- Shared or common DLLs: These DLLs are used by several programs on your computer.
- Proprietary DLLs: These DLLs either belong to one specific program or one particular software publisher.
Note: In this article, C: represents the system drive of your Windows operating system.
When DLLs where first introduced in Windows operating systems the \Windows\System directory was designated as the default folder for shared or common DLL files. On the other hand, proprietary DLLs were supposed to be stored in the program’s own folder.
Additionally, it was intended that any new version of a DLL will be backward compatible with its older versions and should replace the older DLL when copied to the system. This way, ideally, you should have only one copy of a shared DLL on your computer, which should be available to any application that wants to use it.
However, in reality this does not happen. Quite often, you may end up with a PC having multiple copies of the same DLL file scattered all over your computer’s hard disk. These DLLs are usually added by different programs that use them. Now, on any Windows operating system, only one copy of a specific DLL file can be loaded in the memory (RAM) at one time and this DLL stays in the memory until the application or applications using it need it. This creates problems if you have duplicate DLLs of different versions on your system.
Let’s have a look at a scenario to understand how this feature of Windows causes problems when duplicate DLLs exist on your system.
- Suppose that a program distributed with an earlier DLL version is loaded at System startup. This DLL is located in the program’s local directory and comprises 15 functions that are loaded in the physical memory or RAM of your computer.
- After your system starts up, you open another recently released program on your system. Suppose that this program needs to use the same DLL that the program loaded at startup uses. But, this new program needs to use the more current version of this DLL that comprises 70 internal functions in comparison to 15 functions included in the early DLL version.
- Because the early version of the DLL is already in the memory, the new program will be unable to load its own new version DLL in the memory. Moreover, as this DLL is already loaded, you may not face any problems while launching your program.
- The trouble will start when the program asks for one of the 55 functions that are missing from the earlier version of the DLL. When this happens, your system may crash, or freeze up. Many times, an error message may be displayed that is completely unrelated to the real problem.
How to Resolve Duplicate DLL Problems
To resolve duplicate DLL problems, perform the following steps:
- Download and install a third party DLL cleaner tool on your computer. This tool may come packaged with another PC diagnostic and repair tool.
- Run the DLL cleaner tool to scan and display all duplicate DLL files on your computer.
- Now, copy all old and new versions of one DLL file to a different medium, such as a pen drive, floppy disk, or a CD and then delete all versions of this DLL file from the system
- Copy the latest DLL version in the C:\Windows\System folder.
- Now, run the programs that require this DLL. If they run fine, your problem is resolved. If you encounter problems, replace the DLL for the programs that do not work.
- Repeat the process for other duplicate DLL files on your system.
Note: Make a note of the locations of all DLL files you copy and delete. This way, you will be able to restore the required DLL in its location if the removal process fails. It is also recommended that you create a System Restore point before proceeding, so that you can revert to your earlier system settings if the repair process fails.
DLL problems may also occur due to the existence of duplicate and invalid DLL entries in the Windows registry. To resolve this problem, you may use a reliable registry cleaner to perform a custom registry scan for DLL related errors and then repair them.