What are the types of DLL files.?

I heard different types of dll files exist.One of Dotnet kind and other of COM etc.

Could anyone give a complete list and description if possible.
uday kiran reddyBusiness AnalystAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Karrtik IyerSoftware ArchitectCommented:
Win 32, MFC, COM,. NET
If you tell us what you are trying to do with this list, I think we might be able to help you better.
JohnBusiness Consultant (Owner)Commented:
I think it is fair to say there is no one kind of DLL file. It depends on the software writer what the DLL will do. That is not normally readily available.
Karrtik IyerSoftware ArchitectCommented:
As far as I understand, DLL is a Microsoft specification. Like John mentioned in his earlier comment any software writer can write code to produce DLL given that it follows the specification.
Most popular ones have been already mentioned in earlier comments. But it is difficult to say if the list covers everything. Even Delphi produces DLL I think.
Like the below link from msdn explains different kinds of DLL that can be produced using VC++.
Jacques Bourgeois (James Burger)PresidentCommented:
As far as you see them from the framework, there are 3 kinds of dlls.

Older applications did not need dlls. When you compiled it, the methods that you needed from the library provided with the language/compiler you were using were incorporated into the application you were developing, just after compilation, in a step called linking. For instance, at one point in time, almost every application written in C contained the code for the printf function.

That was OK when there were few applications as was the case with MS-DOS, but when Windows came on, in which a great number of applications and services can run at the same time, having the same function incorporated into each application became a problem. Computers did not have a lot of memory and hard disk space, and that duplication was eating a lot on these resources.

When Windows came, the concept of the dll came in. Have the function in only one place, the dll, and link to it when required. This way, 23 application can work with only one copy of the function.

The first dlls were typically C dlls. Whether created with the MFC library or not, these are the same types of dll. Windows and older applications are built around these dll. They were originally used only by C/C++ applications, but with time, most languages where designed to be able to use them. They were created before object oriented programming became the way to go, so they do not have classes. They are simply libraries of methods that you call when needed. In .NET, in order to use these, you need to have some documentation and use a DllImports statement to "connect" to them.

Then came the need for applications to communicate one with each other, so that you can take part of an Excel sheet for instance, and display it with its full functionnality in Word. That meant that you might need to use a .exe file the same way as you do a .dll. And object oriented development became the norm. This required a new file format and specifications, that came under the labels COM or ActiveX (after being called OLE Automation for a while).

Because the main use for these was the same as a dll, that is provide a library of tools that can be used by any application that knows about the standard, they took the bad (in my opition) decision of also naming .dll. Although they bear the same extension, they are completely different beasts under the hood. In .NET, you use these by referencing a COM dll.

Because of the way they are constructed (they require pointers) and because their standard are different (dates are not represented the same way in COM and in .NET), most .NET languages cannot use them directly. So, whenever you reference one of these, .NET generate an interop, a bridge between .NET and COM. Your .NET application call the interop, that calls the COM dll, that answer to the interop, that sends back the results to your .NET application.

These were not well adapted to the modern world however. When COM was designed, the Internet was a small things and was used mostly for display, not for applications. Phones were not intelligent. An app was simply a meaningless word with 3 letters in it. The world needed a new standard for two applications to communicate through an Internet connection. Even on a standard network or a single computer, COM become hard to use for what was expected of modern applications. It was not adapted to the new security threats that were appearing everywhere.

So, .NET was "invented". A newer standard of communication between applications or applications and libraries. Requiring new ways to deal with applications in memory. Because the main use for the libraries running under that standard was the same as a dll, that is provide a library of tools that can be used by any application that knows about the standard, they took the bad (in my opition) decision of also naming .dll. (Seen that one before?).

Thus, 3 different things, all with for the same purpose, so all the same name.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
jessesmith smithCommented:
The .DLL file itself stands for Dynamic Link Library.
.DLL files are executable programs (like software) however, they can not be launched or opened by the user.
        .DLL files can be executed by software applications. (.exe)
        .DLL files can be executed by another .dll file. (.dll)
If either situation returns a missing .dll file, a missing .dll error may occur.
There are two types
Run-Time Dynamic Linking
Load-Time Dynamic Linking
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.