The terms “DLL Hell” or “Dependency Hell”. The terms refer to the different complications that can occur when dealing with multiple versions of the same Dynamic Link Library (DLL) file. The whole point behind DLL's is that you can write a single container object that is shared by any number of other components that need that DLL’s functions. This saves hard disk space as well as memory space since the DLL only has to map into memory once. It also allows you to change functionality or even fix bugs in a single location. This however opens you up to unintended consequences if a DLL is replaced with an older or sometimes even newer version. When this occurs, you might get errors like this:
- "The procedure entry point Foo couldn't be located in Bar.dll"
- "Ordinal 123 could not be located in the Dynamic Link Library Example.dll"