.DEF

DEF-bestand

Module-Definition File
Stel een vraag
SNEL ANTWOORD

Een DEF-bestand is een linker-instructiebestand in platte tekst - meestal een EXPORTS-lijst die de Windows-linker vertelt welke functies een DLL moet blootstellen. Open het in een tekstverwerker zoals VS Code of Notepad++. Het is een build-input die aan de linker wordt doorgegeven met /DEF:name.def, geen programma dat u uitvoert.

Ontwikkelaar: Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars) Categorie: Ontwikkelaarsbestanden MIME: text/plain
OPENT OP Windows macOS Linux
Gerelateerd: .DO · .MD · .HEX · .XSD

Op deze pagina

19k+ extensies geïndexeerd
Laatst beoordeeld op Jul 13, 2026

Niet zeker wat uw bestand is?

Sleep een bestand naar onze identificatietool - we lezen alleen de eerste bytes om het formaat te benoemen.

Identificeer een bestand

Wat is het DEF-bestandsformaat?

.def-bestanden worden geassocieerd met Windows- en OS/2-ontwikkelomgevingen, gebruikt naast C, C++ en andere gecompileerde talen.

Bestanden met de extensie .def slaan gegevens op in platte tekstindeling. .def-bestanden worden soms module-definitiebestanden genoemd en worden gebruikt voor het genereren van DLL-bibliotheken. Een .def-bestand bevat een speciale set linker-instructies - verklaringen zoals LIBRARY, EXPORTS, IMPORTS, SECTIONS, HEAPSIZE en STACKSIZE - die worden gebruikt om belangrijke aspecten van een DLL-bibliotheek te definiëren, inclusief welke functies en gegevenssymbolen worden blootgesteld aan aanroepers en welke rangnummers (ordinals) ze dragen.

Het bestand wordt tijdens het build-proces aan de linker doorgegeven met de /DEF:name.def-schakelaar (MSVC) of gelijkwaardige vlaggen in MinGW/GCC en LLVM lld-link. Het is een build-input, geen gecompileerd artefact; het resulterende binaire bestand is een .dll of .exe.

Een DLL is een bibliotheekbestand dat uitvoerbare code en andere gerelateerde gegevens opslaat. DLL-bestanden zijn herbruikbaar - ze kunnen gelijktijdig door meerdere applicaties worden geopend - en worden dynamisch geladen wanneer dat nodig is. DLL-bestanden zijn ook een middel om schijfruimte en werkgeheugen te besparen vanwege hun dynamische aard. Het bijwerken van software is ook eenvoudiger omdat DLL-bestanden worden gedeeld door meerdere applicaties.

Moderne C/C++-compilers stellen ontwikkelaars in staat om geëxporteerde symbolen rechtstreeks in de broncode te markeren met __declspec(dllexport), waardoor de noodzaak voor een apart .def-bestand grotendeels is afgenomen. .def-bestanden worden echter nog steeds ondersteund door de huidige MSVC-linker (link.exe) en LLVM lld-link, en hebben nog steeds de voorkeur wanneer een stabiele, expliciet geordende exporttabel vereist is.

Beveiliging & veiligheid

RISICO: LOW

Een module-definitie .def is een klein build-bestand in platte tekst en is veilig om te openen en te lezen - het kan niet worden uitgevoerd. Het enige praktische risico is het bewerken ervan in een echt project: het wijzigen of verwijderen van een EXPORTS-item verandert de publieke interface van de DLL en kan aanroepers breken of export-ordinals wijzigen, dus begrijp de ABI-impact voordat u bewerkt. Zoals bij elk bronbestand, vertrouw alleen .def-bestanden uit projectbronnen die u beheert.

Formaatdetails

in een notendop
VOLLEDIGE NAAMModule-Definition Fileook bekend als Module Definition File, DEF file
ONTWIKKELAARMicrosoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars)sinds Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
MIME-TYPEtext/plain
TYPELinker-instructiebestand in platte tekst (verklaringen: LIBRARY, EXPORTS, IMPORTS...)
GERELATEERD.do.md.hex.xsd
Deze extensie wordt ook gebruikt door…
  • Tibia / OTClient kaartbestand (.def) - Sommige game-tooling en de Tibia-kaarteditor gebruikten .def voor kaart/spawn-definities - niet gerelateerd aan linkers.
  • ESRI ArcView / SmartWare datadefinitie - Oudere database- en GIS-tools (SmartWare, ArcView, DataFlex) schreven hun eigen .def schema/definitiebestanden.
  • AniSprite animatiedefinitie / Oberon-2 & Modula-2 DEFINITION module - AniSprite sloeg sprite-animatiedefinities op in .def; Modula-2/Oberon gebruiken .def voor de publieke interface van een module.

Programma's die DEF-bestanden openen

Windows4 apps
Windows Notepad Ingebouwd Openen met > Kladblok voor het snel lezen van een kleine .def; mist syntaxhulp.
Notepad Open-source Rechtermuisklik > Bewerken met Notepad++ om de linker-instructies met regelnummers te bekijken/bewerken.
Visual Studio Code Gratis Open de .def om de EXPORTS-lijst als platte tekst te lezen/bewerken. Beste gratis algemene keuze.
Visual Studio (MSVC) Freemium Voeg de .def toe aan een project en geef deze door via Linker > Input > Module Definition File (/DEF). Visual Studio opent het ook als tekst voor bewerking.
macOS1 app
Visual Studio Code Gratis Open de .def om de EXPORTS-lijst als platte tekst te lezen/bewerken. Beste gratis algemene keuze.
Linux2 apps
nano / vim Open-source Bewerken in de terminal bij het cross-builden van Windows DLL's (MinGW-w64/LLVM verwerken .def via -Wl,--def of /DEF).
Visual Studio Code Gratis Open de .def om de EXPORTS-lijst als platte tekst te lezen/bewerken. Beste gratis algemene keuze.

Technische details

diepe specificaties
Formaat-typeLinker-instructiebestand in platte tekst
MIME-typetext/plain
KaraktercoderingASCII / ANSI; UTF-8 zonder BOM is typisch
Bestandssignatuur (magic bytes)Geen - geïdentificeerd door trefwoorden zoals LIBRARY, EXPORTS of NAME aan het begin van regels
Typische bestandsgrootteMinder dan 1 KB tot enkele KB (één geëxporteerd symbool per regel)
Kernverklaring: LIBRARY / NAMEDeclareert de modulenaam die is ingebed in de interne header van de DLL
Kernverklaring: EXPORTSLijst met elk symbool dat moet worden blootgesteld, met optionele rangnummers (@N), NONAME en DATA-vlaggen
Aanvullende verklaringenIMPORTS, SECTIONS (sectie-attributen instellen), HEAPSIZE, STACKSIZE
Linker-schakelaar (MSVC)/DEF:bestandsnaam.def doorgegeven aan link.exe tijdens build
Ondersteunende toolchainsMSVC link.exe, MinGW/GCC ld, LLVM lld-link, Watcom linker, Digital Mars linker
Output-artefactenBeheert de exporttabel van een .dll en de importbibliotheek (.lib) die daarnaast wordt gegenereerd
Bijbehorende besturingssystemenWindows (primair); OS/2 (verouderd); 16-bit DOS (verouderd)
Modern alternatief__declspec(dllexport) in broncode; .def heeft nog steeds de voorkeur voor stabiele export-ordinals en toolchain-portabiliteit
Legacy 16-bit trefwoordenCODE- en DATA-segmentattribuutverklaringen aanwezig in 16-bit Windows/OS/2 DEF-bestanden; verouderd onder Win32
Compressie en versleutelingGeen - altijd opgeslagen als ongecomprimeerde, niet-versleutelde platte tekst
UitgebrachtWindows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
Laatste versieSame statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link
Specificatielearn.microsoft.com

DEF conversies

Community V&A

gevraagd door gebruikers
Stel een korte vraag
Krijg hulp van mensen die met DEF-bestanden werken. Wees specifiek - vermeld uw systeem en softwareversie.
Geen account nodig · antwoorden meestal binnen een dag

Nog geen vragen - wees de eerste om iets te vragen over DEF-bestanden.

Veelgestelde vragen

Wat is een .def-bestand in programmeren?
Een module-definitiebestand: een lijst in platte tekst met linker-instructies - voornamelijk een EXPORTS-sectie die de functies benoemt die een DLL moet blootstellen. U geeft het door aan de linker (link /DEF:name.def) bij het bouwen van een Windows DLL of EXE.
Hoe open ik een .def-bestand?
Het is platte tekst - open het in VS Code, Notepad++ of de editor binnen Visual Studio. Om het in een build te gebruiken, voegt u het toe aan de instelling „Module-Definition File” (/DEF) van de linker in uw project.
Heb ik nog steeds een .def-bestand nodig als ik __declspec(dllexport) gebruik?
Vaak niet - exportattributen op broncodeniveau dekken de meeste gevallen. Maar .def is nog steeds nuttig voor stabiele export-ordinals, het exporteren van ongedecoreerde C-namen, of toolchains/legacy-projecten die dit verwachten.
Hoe maak ik een .lib van een .def?
Gebruik de MSVC LIB-tool: lib /DEF:name.def /OUT:name.lib /MACHINE:X64 (of de dlltool van MinGW). Dit bouwt een importbibliotheek zodat andere code kan linken naar de DLL die de .def beschrijft.
Waarom rapporteert mijn linker ontbrekende exports?
Vaak staat het symbool niet in de EXPORTS-sectie van de .def, is de naam anders gedecoreerd dan verwacht, of is het rangnummer gewijzigd. Controleer of de EXPORTS-lijst overeenkomt met de werkelijke functienamen en of deze aan de linker wordt doorgegeven.
Mijn .def-bestand is geen linker-bestand - wat gebruikt nog meer .def?
Verschillende niet-gerelateerde programma's hergebruiken .def voor hun eigen „definitie”-gegevens - spelkaartdefinities (bijv. Tibia), database/GIS-schema's (SmartWare, ArcView), of Modula-2/Oberon-module-interfaces. Dat zijn verschillende formaten die dezelfde extensie delen.

Referenties

1Microsoft Learn - Module-Definition (.def) Fileslearn.microsoft.com
2Microsoft Learn - EXPORTS sectionlearn.microsoft.com

Blijf ontdekken

door de database

Populaire extensies deze week

1.AQQAQQ Instant Messenger File
2.BINCD/DVD Disc Image (BIN/CUE)
3.MDMarkdown Document
4.PARTPartial Download File
5.RPMSGRestricted Permission Message
6.CRDOWNLOADChrome Partial Download File
7.NOMEDIAAndroid No-Media Marker File
8.PRDXSoftMaker Presentations Document
9.PRO6XProPresenter 6 Bundle File
10.SWFSmall Web Format (Shockwave Flash)

Gerelateerde extensies

.DOStata Do-File
.MDMarkdown Document
.HEXIntel HEX File
.XSDXML Schema Definition
.MAPSource Map (JavaScript / CSS)
.CONFIGConfiguration File

Gratis bestandstools

Een bestandsidentificatie en afbeeldingsconverter in de browser - alles draait op uw eigen apparaat.

Open de gereedschapskist

Blader door bestandsextensies A-Z