E-Mail:
Get my new Windows 7 eBook (PDF) for $7 with 70+ Tips. Download Now!

What Are .DLLs?


Chris | Live Tech Support | Video Help | Add to iTunes

http://live.pirillo.com/ – What – exactly – is a .DLL? Why are there so many on your computer? Are they necessary?

A .DLL (or Dynamic Link Library ) is a software component that an application links to at run time. A .DLL file enhances the functionality of an .exe (or executable ) file. A .DLL file is executable, but not by itself. It must be ‘called upon’ by the .exe in order to work. You can’t, for instance, double click on a .DLL file and have it actually DO something. It needs the .exe in order to run.

Let’s talk a bit about “DLL Hell.” If you were to scan around your C: folder, you will probably see many different .DLL files that are basically the same… just in several different locations. This may seem like a nuisance, and you’ll find the urge to get rid of them. However, be careful. Many programs may require that same .DLL in order to run… but the programmer could have hard coded the files to HAVE to be in a certain location. Let’s say Program A needs .DLL A in order to run, and it’s located in C:\Windows. Program B also needs .DLL A in order to run, but it has to be located in C:\Windows\System32. If you delete one of those, one of the programs will no longer work properly. It will look for the .DLL file in the location it expects. When it doesn’t find it there, it won’t run.

You can find more information about .DLLs in general on Chris Quirke’s excellent tutorial. Chris is a Microsoft MVP, with a lot of respect for his knowledge of computers.

If you would like to embed this video into your blog, use this code:

Formats Available: MPEG4 Video (.mp4) Flash Video (.flv) MP3 Audio (.mp3) Microsoft Video (.avi)

Need a new domain name? See why GoDaddy is the #1 domain registrar worldwide. Now with your domain registration, you'll get hosting, a free blog, complete email system, and much more! Plus, as a listener of The Chris Pirillo Show, enter code CHRIS1 when you check out, and save an additional 10% on any order. Get your piece of the internet at GoDaddy!

2 Comments

Every once in a while I have a chance to click through and read one of these, and I am always amazed by what I learn that I never knew. I’ve been in .dll hell many times.

Wow!!! allowing other developers to modify system (i.e. Windows) dlls
is not very smart. Microsoft needs to take a couple of pages out of
IBM’s playbook. (I’m an IBM mainframe systems programmer)
In the Mainframe world, there are also DLLs (e.g. SYS1.LINKLIB) However
the BIG difference is IBM doesn’t allow you to modify their DLLs.
If you want to call services in z/OS (latest version of MVS) you make use
of IBM’s many Exit points, and system service macros which provide
developers with a standard interface to the OS and the machine itself.

IBM also has a Change Management Database called SMP/E (SystemManagementProgram/Extended)
It consists of a Database of all changes and versions of all elements of
the operating system. Any developer who wants their software to run
on z/OS is strongly urged to make use of SMP/E.

If Microsoft would adopt these principles, it would make Windows a lot
less prone to bad code, malware, and viruses.

What Do You Think?