NotaBene Mailing List 2000
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Craha Bene! What's a DLL?
" On Tue, 19 Dec 2000 10:29:40 -0600 (CST), mebennun@nospam.icon.co.za wrote:
"
" >DLLs (what exactly are they - can someone please explain!!??)
"
lynx http://www.techweb.com/encyclopedia
TechEncyclopedia
(Dynamic Link Library) An executable program module that performs some
function. DLLs are widely used in Windows, but they are not launched
directly by the user. When needed, they are called for by a running
application and are loaded to provide additional functionality. DLLs
can be rather simple such as providing the ability to display a 3-D
border around a dialog box (CTL3DV2.DLL) or as complicated as a
full-blown language interpreter such as a Visual Basic runtime module
(VBRUN400.DLL).
DLLs are generally written so that their routines are shared by more
than one application at the same time (see [43]reentrant code). There
are many DLLs that come with Windows that applications depend on (look
in your \WINDOWS\SYSTEM folder for the .DLL extension). Applications
may also include their own DLLs, which may be stored in the
application folder or in the \WINDOWS\SYSTEM folder.
In the DOS world, there was never a formal way to dynamically link and
share routines at runtime. ISRs and TSRs were created for this
purpose, but they were not sanctioned by Microsoft and often caused
conflict. Unfortunately, there are still conflicts in the DLL world
(see [44]DLL hell).
DLL Hell refers to conflicts with Windows DLLs when the wrong one is
installed.
A Windows DLL is an extension to the operating system that is shared
by any application that calls it. Once a DLL is opened, all programs
use that same instance of the DLL when they need its functions.
Microsoft is continually adding features to its DLLs, and in order for
an application vendor to utilize those features and ensure that the
latest DLL is available, it installs the latest DLL along with the
application.
The problem is that the latest DLL can always be superseded by an even
later one. If the installation program does not check version numbers
or dates and simply installs its shared DLL into the \WINDOWS\SYSTEM
directory, it may overwrite a newer version with an older one. This
means the installation of a new application can foul up an existing
application that depends on functions in the newer DLL that all of a
sudden no longer there.
Although Microsoft has published guidelines, there is no way to
enforce compliance, and Microsoft itself from time to time has
released new versions of DLLs that are incompatible with older ones.
One has to remember, however, that this flawed system was set up when
4MB of RAM was the norm and having two instances of the same DLL open
was wasteful of precious memory. Today it is a moot point. Windows
2000 solves the problem by allowing application vendors to install
required DLLs in their own application folders and mark them as "not"
sharable. Thus, even if a DLL by the same name is already open and in
use, the application will use its own version of the DLL instead.
lynx whatis.com
dynamic link library
In computers, a dynamic link library (DLL) is a collection of small
programs, any of which can be called when needed by a larger program
that is running in the computer. The small program that lets the
larger program communicate with a specific device such as a printer or
scanner is often packaged as a DLL program (usually referred to as a
DLL file). DLL files that support specific device operation are known
as [41]device driver.
The advantage of DLL files is that, because they don't get loaded into
random access memory ([42]random access memory) together with the main
program, space is saved in RAM. When and if a DLL file is needed, then
it is loaded and run. For example, as long as a user of Microsoft Word
is editing a document, the printer DLL file does not need to be loaded
into RAM. If the user decides to print the document, then the Word
application causes the printer DLL file to be loaded and run.
A DLL file is often given a ".dll" file name suffix. DLL files are
dynamically linked with the program that uses them during program
execution rather than being [43]compiler with the main program. The
set of such files (or the DLL) is somewhat comparable to the library
routines provided with programming languages such as [44]C and
[45]C++.
Main Index |
Thread Index