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