.DLL

DLL File

Dynamic Link Library
Ask a question
QUICK ANSWER

A DLL (Dynamic Link Library) is a Windows library file holding compiled code that programs load while they run, so it is not something you open by double-clicking. If an app reports a DLL is missing, reinstall that app or the Microsoft Visual C++ Redistributable instead of downloading the file from a random site. Developers can look inside a DLL with dotPeek, ILSpy or Resource Hacker.

Developer: Microsoft Category: System Files Open standard MIME: application/vnd.microsoft.portable-executable
OPENS ON Windows Linux
Related: .NOMEDIA · .TMP · .LNK · .PKG

On this page

19k+ extensions indexed
Last reviewed Jun 15, 2026

Not sure what your file is?

Drop any file into our identifier - we read just the first bytes to name the format.

Identify a file

What is the DLL file format?

Files with the .dll extension contain dynamically linked libraries shared within Microsoft Windows. The .dll format uses the same binary structure as .exe files - the Portable Executable (PE) format, identified by the MZ magic bytes at offset 0 and a PE\0\0 signature pointed to by the DOS stub header - but unlike an executable, a .dll cannot be launched directly; it must be loaded by a host process.

All data in a .dll can be loaded into memory and used by several programs simultaneously. Libraries typically hold ActiveX controls, control panel applets, device drivers, or icon and font resources - although files serving those last roles often carry different extensions such as .ocx for COM components or .sys for kernel-mode drivers. They are also used as modular components of larger applications, delivering specific functions as plugins.

Libraries may contain:

  • Code for sub-programs, functions, and plugins
  • Data, including graphics and string tables
  • Associated resources such as menus, dialogs, and version information

The specification of the .dll format is the same as .exe files - both use the PE (or PE32+ on 64-bit Windows) container - however, the library does not constitute a standalone program. Within the calling program, a reference to a library and its loading can be performed as late as when it is needed (delay-loading). The .dll model supports modular application architecture, encourages reuse of code fragments, and reduces both memory usage and disk space. Managed .dll files compiled for .NET carry a CLR header alongside the standard PE structure, containing MSIL bytecode instead of native machine code.

Security & safety

RISK: HIGH

DLLs are executable code, and malware loves them: malicious DLLs run inside legitimate processes (DLL hijacking/sideloading - planting a rogue DLL where an app searches first), and "DLL fixer" download sites are a classic malware and scam channel. Rules: never download individual DLLs from third-party "DLL download" sites; fix missing-DLL errors by reinstalling the app, installing the official Visual C++ Redistributable / DirectX runtime, or running sfc /scannow; check unknown DLLs' digital signature (Properties → Digital Signatures) and scan them on VirusTotal. Deleting random DLLs from System32 breaks Windows.

Format details

in a nutshell
FULL NAMEDynamic Link Library
DEVELOPERMicrosoftsince 1985 (Windows 1.0, NE format); current PE format since Windows NT 3.1, 1993
CATEGORYSystem Files
MIME TYPEapplication/vnd.microsoft.portable-executable
TYPEWindows PE (Portable Executable) shared library - compiled binary code
STANDARDOpen · royalty-free
MAGIC BYTES · FILE SIGNATURE
OFFSET
0001
HEX
4D5A
ASCII
MZ
Followed by "PE\0\0" (50 45 00 00) at the offset stored in the DOS header field e_lfanew (offset 0x3C); the DLL flag is bit 0x2000 in the COFF Characteristics field

Programs that open DLL files

Windows6 apps
Microsoft Visual Studio Freemium For developers: reference the DLL in a project, or inspect it via the built-in object browser/dumpbin.
Resource Hacker Free Open the DLL to view/extract/replace icons, dialogs, strings and version info.
Microsoft Windows (built-in loader) Built-in DLLs are loaded automatically by the programs that need them; for COM DLLs use 'regsvr32 file.dll'. Repair system DLLs with 'sfc /scannow'.
dotPeek (JetBrains) Free Open a .NET DLL to decompile it back to readable C# code.
ILSpy Open-source Open-source .NET decompiler - drag the DLL in to browse namespaces and decompiled code.
Dependencies (lucasg) Open-source Modern Dependency Walker replacement: shows the DLL's imports/exports and which DLLs it needs.
Linux1 app
Ghidra Open-source Import the DLL for full disassembly/decompilation of native code (also on Windows/macOS).

Technical details

deep spec
Binary formatPE (Portable Executable) on 32-bit Windows; PE32+ on 64-bit Windows - same container structure as .exe
Magic bytes4D 5A ("MZ") at offset 0; "PE\0\0" (50 45 00 00) at the offset stored in the DOS stub field e_lfanew (0x3C)
DLL identification flagIMAGE_FILE_DLL bit (0x2000) in the COFF Characteristics field distinguishes a DLL from an EXE within the same PE container
MIME typeapplication/vnd.microsoft.portable-executable
Export mechanismExport Directory Table lists functions by name and/or ordinal number; callers resolve runtime addresses via the Export Address Table (EAT)
Import mechanismImport Directory Table declares required DLLs and function names or ordinals; the Windows loader patches the Import Address Table (IAT) at load time
Linking modesImplicit (load-time) linking via an import .lib stub, or explicit (run-time) linking via LoadLibrary() and GetProcAddress()
ASLR and relocation.reloc section holds a base relocation table; Windows ASLR randomises the actual load address at runtime, overriding the preferred ImageBase in the PE optional header
Common sections.text (executable code), .data (initialised data), .rdata (read-only data and imports), .rsrc (resources), .reloc (base relocations)
Embedded resources.rsrc section stores typed resources - RT_ICON, RT_DIALOG, RT_STRING, RT_VERSION, RT_MANIFEST - viewable and editable with tools such as Resource Hacker
Architecture buildsEach target CPU (x86, x64, ARM, ARM64) requires a separate DLL binary; no fat-binary support unlike macOS dylib
Managed .NET DLLsCLR-compiled DLLs embed an IMAGE_COR20_HEADER pointing to MSIL/CIL bytecode rather than native machine code; decompilable with ILSpy or dotPeek
Side-by-side assembliesWindows XP+ WinSxS allows multiple versions of the same DLL to coexist on one machine, governed by application manifest files
Entry pointOptional DllMain() function called by the loader on four events: DLL_PROCESS_ATTACH, DLL_THREAD_ATTACH, DLL_PROCESS_DETACH, DLL_THREAD_DETACH
Delay-load/DELAYLOAD linker option defers DLL loading until the first call to one of its exported functions, reducing process startup time
Released1985 (Windows 1.0, NE format); current PE format since Windows NT 3.1, 1993
Open standardYes · royalty-free
Specificationlearn.microsoft.com

DLL conversions

Community Q&A

asked by users
Ask a quick question
Get help from people who work with DLL files. Be specific - include your system and software version.
No account needed · answers usually within a day
R
reguntas y respuestas de la comunidaSep 2026UNANSWERED
Preguntas y respuestas de la comunidad preguntado por usuarios Hacer una pregunta rápida
Waiting for an answer

Frequently asked questions

How do I fix 'XXXX.dll is missing' errors?
Reinstall the program showing the error; for vcruntime/msvcp/msvcr DLLs install the latest Microsoft Visual C++ Redistributable from microsoft.com; for d3dx9/xinput DLLs install the DirectX End-User Runtime; for system DLLs run 'sfc /scannow'. Avoid DLL download sites.
Is it safe to download a DLL from a DLL-download website?
No. These sites are unverified and a known malware vector, and a single mismatched DLL version usually won't fix the app anyway. Use official installers/runtimes instead.
Can I open a DLL file to see what's inside?
Yes, with the right tool: Resource Hacker shows icons/dialogs/strings; dotPeek or ILSpy decompile .NET DLLs to C#; Dependencies shows exports/imports. Double-clicking does nothing - DLLs aren't standalone programs.
Can I delete DLL files to free space?
Don't. DLLs in Windows or Program Files folders are needed by the OS and apps; deleting them causes the exact 'missing dll' errors people search for. Use Disk Cleanup instead.
How do I register a DLL with regsvr32?
Open an elevated Command Prompt and run 'regsvr32 path\to\file.dll' (only works for COM DLLs that expose DllRegisterServer; ordinary DLLs will return error 0x80070057/126).
Are DLL files viruses?
A DLL is a normal Windows component, but malware can be a DLL. Red flags: a DLL in Temp/Downloads, no digital signature, or a system-DLL name (e.g. ntdll.dll) sitting outside C:\Windows\System32. Scan suspicious files with Defender/VirusTotal.
Can I convert a DLL to EXE?
No - a DLL is a library without a program entry point. If you need the functionality, use the application the DLL belongs to, or (developers) call the DLL from your own code.

References

1Microsoft Learn - PE Format specificationlearn.microsoft.com
2Microsoft Learn - What is a DLLlearn.microsoft.com

Keep exploring

across the database

Top extensions this week

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.PARTPartial Download File
4.DATProgram Data File (generic)
5.RPMSGRestricted Permission Message
6.M4AMPEG-4 Audio File
7.BINCD/DVD Disc Image (BIN/CUE)
8.JSONJavaScript Object Notation file
9.EXEWindows Executable (Portable Executable)
10.ICSiCalendar data file

Related extensions

.NOMEDIAAndroid No-Media Marker File
.TMPTemporary File
.LNKWindows Shell Link (Shortcut)
.PKGmacOS Installer Package
.ETLEvent Trace Log
.ASECAndroid Secure Encrypted Container (apps-on-SD container)

Free file tools

An in-browser file identifier and image converter - everything runs on your device.

Open the toolbox

Browse file extensions A-Z