DLL library - what is it and how to open it. More about static and dynamic libraries

DLL is an extension of files that are a kind of reference materials when executing certain programs. The file type name stands for " dynamic link library" These dynamic libraries can be used simultaneously different applications. In a way they are also similar to executable files, however, they differ in the meaning of some fields. The most a shining example are driver files, which describe the rules of interaction between the device and the OS.

How to open DLL

Before telling you how to open these files, you should draw the user’s attention to the fact that there is no particular point in opening this type of library. They contain information necessary for the program for execution. It is extremely rare that this file type stores important variables (rather than the way they are called) or data. Although, in fairness, we note that there are a number of companies that still managed to place the information necessary for the programs to work in dlls.

True, dynamic libraries are sometimes subject to decompiling to obtain the rules and operating principles stored in them. There are several special ones for this. programs.

The advantage of the program is also the ability to work with different types file libraries and even edit some of them. But it’s worth repeating once again - this information submitted purely for familiarization, trying to change files with the .dll extension is one of the worst ideas that a user can come up with.


Does this program have dignity? Huge number– the range of work that can be performed on it is limited only by the owner’s imagination. A flaw only one, but significant - annual subscription is about $500.

Installation method

But if we don’t have to write and edit libraries, like ordinary users, then knowledge about their installation can be useful. The fact is that not all programs are supplied with a full set of necessary libraries and it is assumed that along with them they are installed individual components(a very common detail when installing games) that were forgotten by the user. Then it is required install, or rather register dll files.

First you need to find the file itself. Fortunately, with a thorough search it is not so difficult and required libraries are found quite often, even separately from the package, which does not interfere with their work. It is worth noting that in the case of games these are d3dx.dll which can absent on the system - in this case it is better to install the DirectX package rather than install 150 libraries manually.

But if necessary register new dll to run the program, it is better to place it in the directory with the program. In Windows 7 and above there is the ability to open command line from the catalogue, in other cases it is necessary open command line and using the command CD get to the desired directory.

For the specified OS versions it is sufficient open the desired directory and hold Shift and click on empty space right click mice. In response, it will appear before us context menu, the following form:

Click on " open command window" will appear before us command line, where we need to write the following:

regsvr32 dllname.dll

This command will add the library to the list of those used by the system, saving time on other installation methods. To cancel registration, you should use the following command:

regsvr32 -u dllname.dll

Important to note that dllname.dll is entered as an example and instead of everything written to the left of the dot (that is, instead of dllname) you should enter the name of your file. The image shows the addition of a dll file from directX8 to Windows 10.

In this simple way you can install the library on the system. However, if the slightest failures or errors are observed, you should immediately run another command, remove the registration, and contact a specialist with the problematic program.

DLL format files are opened by special programs. There are 2 types of DLL formats, each of which opens different programs. To open desired type format, study the file descriptions and download one of the proposed programs.

.DLL file extension

The HELPER.DLL program will help you find and install any missing or damaged DLL library.

DLL format files contain settings for links to various resources used by the program, for example, icons. DLLs are intended exclusively for Windows OS. On other operating systems, such files can only be opened using emulators (the exception is cross-platform applications for Mac OS). It must be remembered that modern programs do not support files for 16-bit architecture.

Precautions

In most cases, the user does not need to open DLL format files as they are intended exclusively for developers. Editing this file may have a negative impact on performance individual programs and operating system, for this reason you need to find the Dll file and make a copy of it.

Programs for opening DLL files

View source code

One of the most common ways to view a Dll extension is . The program has built-in functions for decompiling some files, so you can debug dlls, and most importantly, it is completely free. Of course, guarantee correct display code for all files is not possible.

As an alternative, you can use the dotPeek decompiler. It is also free, but can only work with programs written in C#.

Setting up the program interface

Best suited for this purpose. With this program you can easily change icons, dialogs or install own animation. Unfortunately, the program is paid even for non-commercial use. Please note that there may be problems with the files large sizes(about 1 GB or more).

Debugging

The most in a simple way is to use Visual Studio from Microsoft. This is a fairly functional tool, the capabilities of which include program debugging, but it will only help if the file is not protected.

If you just need to download a DLL to replace a broken file (or a DLL is missing), then DLL-helper will help here - a completely free program.

Dynamic web pages

There is another DLL format - files that generate code for websites. Such libraries can be opened in any convenient development environment, for example, Visual Studio . The browser will help you test them in action. Better to use latest versions popular browsers, otherwise the file may not display correctly.

A web page that is automatically created during user access. Can combine server-side scripts, such as Perl or , that generate code for web pages.

Web pages in extension files DLLs more often in total are stored on Microsoft IIS web servers. The DLL extension must be mapped to the appropriate server scripting engine for the page to be processed correctly.

A compiled library file containing a set of procedures and/or drivers referenced and executed by a program. Allows various programs access public system functions through standard libraries. Can be dynamically linked within a program while it is running.

Many DLL files (read DLL) are provided by the operating system Windows system, others are included Windows programs. They also provide various software features such as connecting to external devices both input and output signal hard drive. They can also be referenced by cross-platform Mac applications.

Note: Deleting or changing the contents of a DLL file may cause errors in the program that references the file. Therefore, DLL files should not be opened or edited.

You are here because you have a file that has a file extension ending in .dll. Files with the .dll extension can only be launched by certain programs. It is possible that .dlls are data files and not documents or tools mass media, which means they are not intended to be viewed by anyone.

what is a .dll file?

These DLL files are also known as Dynamic Link Library files, and the contents of the file attached with the .dll extension are a set of compiled resources such as directives, procedures, and driver libraries that are required built-in Windows applications, And third party programs, which were developed for Microsoft Windows. These DLL files allow Windows programs to share resources in compiled libraries with other applications.During execution, some of these applications may be linked to these resource DLLs. Most of these DLL files are already bundled with Microsoft systems Windows, although some programs provide their own resource DLLs after installation. Some of these DLL files facilitate communication between the Windows system, the corresponding built-in or third party applications and driver resources required for external and internal devices input/output.

how to open a .dll file?

Launch the .dll file or any other file on your computer by double-clicking it. If your file associations are configured correctly, the application that is meant to open your .dll file will open it. You may need to download or purchase correct application. It is also possible that you have the correct application on your computer, but the .dll files are not yet associated with it. In this case, when you try to open a .dll file, you can tell Windows which application is the correct one for this file. From then on, opening the .dll file will open the correct application.

applications that open .dll file

Microsoft Windows Operating System

Microsoft Windows Operating System platforms mostly used files with .ANI extension, a graphic file format used for animated mouse cursors, which are also defined as Windows Animated Cursor. These files have the same functions with CUR file format or better known as the Static Cursor; its distinction is that being an animated cursor with the use of strings of images to show animation. The format is based on the Microsoft RIFF file format, which is utilized as storage for keeping the individual frames, which are typical Windows icons of the animation. This type of file is usually integrated in a customized theme for desktop, and is helpful to personalize the CPU system. Its final animation is designed with some icon frames are used for showing a single image after another to generate animation. Despite a number of frames using the icon format, part of the stored data in the animated cursor file handle the order of the step, length, title, and the author of the animation.

a word of warning

Be careful not to rename the extension on the .dll files or any other files. This will not change the file type. Only special program To convert, you can change the file from one file type to another.

what is the file extension?

A file extension is the set of three or four characters at the end of a file name, in this case,  .dll. File extensions tell you what type of file it is, and tell Windows what programs it can open. Windows often associates a default program for each file extension, so that when you double-click a file, the program launches automatically. Even though a program is no longer on your computer, you may sometimes receive an error message when you try to open the file in question.

DLL is an abbreviation for Dynamic Link Library. A dynamic library of resources and routines allows you to reuse previously written modules. The library file may include, for example, procedures and icons. It is required for the operation of Windows operating systems.

In programming, a library is a collection of programs that can be accessed when developing software. A set of small programs is dynamically included in a larger one when called as an integral part. The advantage of a DLL file is that it does not take up RAM, but is loaded if necessary during run-time, which allows you to significantly save RAM. A DLL program can work with devices: printer, scanner. When working with text in MS Word, there is no need for the constant presence of a DLL printer. If the document is printed, MS Word accesses the dynamic library and calls the corresponding DLL program for the printer.


A set of dynamic routines can be used simultaneously in several running programs - this is another plus. That is why they are also called “library” public use" The bottom line is that only one copy of the dynamic library is loaded into RAM, and all active computers access it. at the moment programs. Which also leads to saving RAM resources. In addition to critically necessary routines, the DLL contains additional features. They can be used as a plug-in, thereby increasing the functionality of the program. Absence the required module in a DLL makes it impossible for the main program to work. This is a negative quality of a dynamic library.


Dynamic library files have standard extension in each operating system: in OS/2 and MS Windows – “.dll”; Mac OS - ".dylib"; UNIX - ".so". Such files are stored in a specific location. For example, in "System32". When writing an application, the programmer specifies the name required function and the name of the library in which it is located. The subroutine code itself is not written in the source text, which greatly simplifies the programming process. This principle is based on the previously popular modular coding. Simple programs designed as separate modules, which made it possible not to write them anew each time, but to include them in the code new program in finished form - a compiled module.


In addition to the executable code of procedures and functions, graphic and video files can be stored in a dynamic library. Their use allows you to save not only RAM, but also disk space. The numerous advantages of the DLL library are not reduced by one drawback - loading modules requires extra time. Their advantages are obvious, so they are widely used by programmers in almost every program.


Be very careful when working: never change the “.dll” extension to something else, do not transfer these files to another folder. Giving a file the suffix “.dll” will not change its type. Required for conversion special application. Most often, errors in Windows work are associated precisely with the lack the desired file".dll".

And IBM OS/2; dynamic library that allows repeated use by different software applications. DLLs also include ActiveX controls and drivers. In the UNIX world, similar functions are performed by the so-called. shared objects.

The DLL file format follows the same conventions as the executable file format, combining code, tables, and resources.

Purposes of introducing DLLs

It was initially assumed that the introduction of DLLs would allow for efficient memory and disk space management, using only one instance of the library module for various applications. This was especially important for earlier versions Microsoft Windows with severe memory limitations.

Further, it was intended to improve the efficiency of development and use system tools due to modularity. Replacing DLL programs from one version to another should have allowed the system to be expanded independently without affecting applications. In addition, DLLs could be used by different types of applications - for example, Microsoft Office, Microsoft Visual Studio, etc.

Subsequently, the idea of ​​modularity grew into the COM concept.

In fact, the full benefits of implementing DLLs have not been achieved due to a phenomenon called DLL hell. DLL Hell occurs when multiple applications require different, not fully compatible, versions of DLLs at the same time, causing those applications to crash. When the system grew to a certain size, the number of DLLs began to exceed many thousands, not all of them were fully reliable and compatible, and conflicts like DLL Hell began to occur very often, sharply reducing the overall reliability of the system. Later versions Microsoft Windows began to allow parallel use different versions DLL, which negated the benefits of the original modularity principle. The use of different versions of Dll is made possible thanks to the manifest file (manifest), which is stored in application resources or in the form separate file in the same directory as the application.

Examples of using DLLs in different languages

Export to DLL

Delphi

library Example; ( We perform certain actions and return the result ) function AddNumbers(a, b: Double): Double; cdecl; begin AddNumbers:= a + b end; (This function is exported) exports AddNumbers; ( DLL initializer, similar main functions() in C and C++ ) begin end.

C and C++

#include #define DLLEXPORT extern "C" __declspec(dllexport) // extern "C" specifies the use of simple C-style function signature generation when obtaining object // files. In particular, this prevents the C++ compiler // from "decorating" (or "decorating") the function name // additional characters when exported to DLL /* This function is exported */ DLLEXPORT double AddNumbers(double a, double b) // Function prototype (function without body). Based on this declared function signature, the search for its body // when linking will be performed below or in another binary file; /* DLL initialization function, analogue of main() */ bool APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved) ( return TRUE; ) /* Body (implementation) of the function prototype declared above. Performs certain actions and returns the result */ DLLEXPORT double AddNumbers(double a, double b) ( return a + b; )

Import from DLL

Delphi

program Example; ($APPTYPE CONSOLE) ( Indicate that the function is in a DLL ) function AddNumbers(a, b: Double): Double; cdecl; external "Example.dll"; (We use the function as usual) var result: Double; begin result:= AddNumbers(1, 2); Writeln("The result was: ", result) end.

C and C++

#include /* * Indicate that the function body is in another file. * Don't forget about the object one DLL module when linking! */ extern "C" __declspec(dllimport)double AddNumbers(double a, double b); /* Use the function as usual */ int main(int argc, char **argv) ( double result = AddNumbers(1, 2); printf("The result was: %f\n", result); return 0; )

Loading and importing from DLLs while running

Delphi

program Example; ($APPTYPE CONSOLE) var result: Double; LibHandle: Hmodule; AddNumbers: function(a, b: Double): Double; begin LibHandle:= LoadLibrary("Example.dll"); // load DLL if LibHandle<>0 then begin @AddNumbers:= GetProcAddress(LibHandle, "AddNumbers"); // remember the address // required function if @AddNumbers<>nil then begin result:= AddNumbers(1, 2); // use the function Writeln("The result was: ", result); end; FreeLibrary(LibHandle); // unload DLL end; end.

C and C++

#include #include /* * Type of function to use * (combination of parameter types and return value) */ typedef double (*importFunction)(double, double); int main(int argc, char **argv) ( importFunction addNumbers; double result; /* Load the DLL into memory */ HINSTANCE hinstLib = LoadLibrary("Example.dll"); if (hinstLib == NULL) ( printf("ERROR : unable to load DLL\n"); return 1; ) /* Get a function pointer */ addNumbers = (importFunction)GetProcAddress(hinstLib, "AddNumbers"); if (addNumbers == NULL) ( printf("ERROR: unable to find DLL function\n"); return 1; ) /* Call the function via the pointer */ result = addNumbers(1, 2); /* * Unload the DLL (in principle, this will be done * automatically when exiting the program) * / FreeLibrary(hinstLib); /* Display the result */ printf("The result was: %f\n", result);

Vulnerabilities in DLL mechanisms

The vulnerability lies in the fact that many programs, when calling the LoadLibrary() function, do not check the correctness of the path where this library can be loaded. Thus, they allow substitution of the executable library. This is due to the fact that the search for the loaded library is carried out primarily in the directory containing the image executable file, which spawned the process (the replaced library is executed with the privileges of the user who launched the process).