Hi all !
what is the difference between Dll and process ???
A process is a program that is running, a DLL is just a collection of functions or resources that can be used by processes. The contents of a DLL can be shared by many processes.
A dll is not a process.. :)
May be the following will help:
- Once you've written your C/C++ code, you will compile it and then link it. Once you do this you will have an executable file (.exe on windows)
- Your code usually be using some or the other library functions (e.g. printf/cout..).
- Given this your executable would require code that is not written by your but is available say as part of OS. Such code is normally available as a dll file (dynamically linked library).
- Now when you double click your exe and run the program, all the code has to get executed and so the OS loads your code (exe) as well as all the libraries (dll) that it depends on into memory and starts executing it from main().
- This chunk of memory is logically termed as a process.
In windows if you have depends.exe you can right click on any exe file and should be able see an option called Show Dependencies.. Check it out, you'll know more abt dlls.
In Unix it's ldd command that does this.
Two things. Using .NET processes you are using functions from
.NET (if this is what you are trying to get at). In the past - pre
.NET environment you were likely calling a routine from a .DLL
file. The problem with .DLL files is that there may be more than
version of said file out there in the world and you may get an
unexpected result or it may not work at all. Many programs
have functions that cannot be found within "Standard" .DLL files.
This means that some programs come with their own .DLL
files. When You install these, the new .DLL files that are installed
may make programs that have always worked before stop
working. So .DLL files are sort of a leftover from the old way
of doing things. The resulting .DLL Hell will be a problem for some
time to come. The new stratagem of using the .NET framework
replaces the old .DLL hell with a way to move forward in smooth
steps. For example C++ 2003 used .NET framework 1.01 and
now may use .NET framework 2.00. C++ 2005 may use 2.00 and
future (2.01 etc) versions of .NET framework as can 2003. But
you can not use C++ 2005 to write code for the old .NET
framework 1.01 or the previous 1,00 .NET framework (to use
the .NET framework 1.0 you needed to use C++ 2002). Does
this help? Was this in fact what you were asking about?
We're a friendly, industry-focused community of 1.19 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.