.DEF

DEF-fil

Module-Definition File
Stil et spørgsmål
HURTIGT SVAR

En DEF-fil er en linker-direktivfil i almindelig tekst - oftest en EXPORTS-liste, der fortæller Windows-linkeren, hvilke funktioner en DLL skal eksponere. Åbn den i en hvilken som helst teksteditor såsom VS Code eller Notepad++. Det er et build-input, der sendes til linkeren med /DEF:navn.def, ikke et program du kører.

Udvikler: Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars) Kategori: Udviklerfiler MIME: text/plain
ÅBNER PÅ Windows macOS Linux
Relateret: .DO · .MD · .HEX · .XSD

På denne side

19k+ filtyper indekseret
Sidst gennemset Jul 13, 2026

Er du ikke sikker på, hvad din fil er?

Træk en fil over i vores identifikator - vi læser kun de første bytes for at navngive formatet.

Identificer en fil

Hvad er DEF-filformatet?

.def-filer er forbundet med Windows- og OS/2-udviklingsmiljøer og bruges sammen med C, C++ og andre kompilerede sprog.

Filer med filtypen .def gemmer data i almindeligt tekstformat. .def-filer kaldes undertiden moduldefinitionsfiler og bruges til at generere DLL-biblioteker. En .def-fil gemmer et specielt sæt linker-direktiver - sætninger som LIBRARY, EXPORTS, IMPORTS, SECTIONS, HEAPSIZE og STACKSIZE - der bruges til at definere nøgleaspekter af et DLL-bibliotek, herunder hvilke funktioner og datasymboler der er eksponeret for kaldere, og hvilke ordinalnumre de bærer.

Filen sendes til linkeren på build-tidspunktet ved hjælp af /DEF:navn.def-switchen (MSVC) eller tilsvarende flag i MinGW/GCC og LLVM lld-link. Det er et build-input, ikke en kompileret artefakt; den resulterende binære fil er en .dll eller .exe.

En DLL er en biblioteksfil, der gemmer eksekverbar kode og andre relaterede data. DLL-filer er genanvendelige - de kan tilgås af flere applikationer samtidigt - og indlæses dynamisk efter behov. DLL-filer er også en måde at spare diskplads og arbejdshukommelse på grund af deres dynamiske natur. Opdatering af software er også lettere, fordi DLL-filer deles mellem flere applikationer.

Moderne C/C++-kompilere giver udviklere mulighed for at markere eksporterede symboler direkte i kildekoden ved hjælp af __declspec(dllexport), hvilket i høj grad reducerer behovet for en separat .def-fil. Dog understøttes .def-filer stadig af den nuværende MSVC-linker (link.exe) og LLVM lld-link, og de foretrækkes stadig, når der kræves en stabil, eksplicit ordnet eksporttabel.

Sikkerhed og tryghed

RISIKO: LOW

En moduldefinitions-.def er en lille build-fil i almindelig tekst og er sikker at åbne og læse - den kan ikke eksekveres. Den eneste praktiske risiko er at redigere den i et rigtigt projekt: ændring eller fjernelse af en EXPORTS-indgang ændrer DLL-filens offentlige grænseflade og kan ødelægge kaldere eller ændre eksport-ordinaler, så forstå ABI-konsekvenserne før redigering. Som med enhver kildefil skal du kun stole på .def-filer fra projektkilder, du kontrollerer.

Formatdetaljer

kort fortalt
FULDSTÆNDIGT NAVNModule-Definition Fileogså kendt som Module Definition File, DEF file
UDVIKLERMicrosoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars)siden Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
MIME-TYPEtext/plain
TYPELinker-direktivfil i almindelig tekst (sætninger: LIBRARY, EXPORTS, IMPORTS...)
Dette filtypenavn bruges også af…
  • Tibia / OTClient kortfil (.def) - Nogle spilværktøjer og Tibia-korteditoren brugte .def til kort/spawn-definitioner - ikke relateret til linkere.
  • ESRI ArcView / SmartWare datadefinition - Ældre database- og GIS-værktøjer (SmartWare, ArcView, DataFlex) skrev deres egne .def-skema/definitionsfiler.
  • AniSprite animationsdefinition / Oberon-2 & Modula-2 DEFINITION-modul - AniSprite gemte sprite-animationsdefinitioner i .def; Modula-2/Oberon bruger .def til et moduls offentlige grænseflade.

Programmer der åbner DEF-filer

Windows4 apps
Windows Notepad Indbygget Åbn med > Notesblok for en hurtig gennemlæsning af en lille .def; mangler syntakshjælp.
Notepad Open-source Højreklik > Rediger med Notepad++ for at se/redigere linker-direktiverne med linjenumre.
Visual Studio Code Gratis Åbn .def-filen for at læse/redigere EXPORTS-listen som almindelig tekst. Bedste gratis generelle valg.
Visual Studio (MSVC) Freemium Tilføj .def-filen til et projekt og send den via Linker > Input > Module Definition File (/DEF). Visual Studio åbner den også som tekst til redigering.
macOS1 app
Visual Studio Code Gratis Åbn .def-filen for at læse/redigere EXPORTS-listen som almindelig tekst. Bedste gratis generelle valg.
Linux2 apps
nano / vim Open-source Rediger i terminalen ved cross-building af Windows DLL'er (MinGW-w64/LLVM bruger .def via -Wl,--def eller /DEF).
Visual Studio Code Gratis Åbn .def-filen for at læse/redigere EXPORTS-listen som almindelig tekst. Bedste gratis generelle valg.

Tekniske detaljer

dyb specifikation
Format-typeLinker-direktivfil i almindelig tekst
MIME-typetext/plain
TegnkodningASCII / ANSI; UTF-8 uden BOM er typisk
Filsignatur (magic bytes)Ingen - identificeres ved nøgleord som LIBRARY, EXPORTS eller NAME i starten af linjer
Typisk filstørrelseUnder 1 KB til få KB (ét eksporteret symbol pr. linje)
Kernesætning: LIBRARY / NAMEErklærer modulnavnet indlejret i DLL-filens interne header
Kernesætning: EXPORTSLister hvert symbol, der skal eksponeres, med valgfrie ordinal- (@N), NONAME- og DATA-flag
Yderligere sætningerIMPORTS, SECTIONS (indstil sektionsattributter), HEAPSIZE, STACKSIZE
Linker-switch (MSVC)/DEF:filnavn.def sendt til link.exe ved build-tid
Understøttede toolchainsMSVC link.exe, MinGW/GCC ld, LLVM lld-link, Watcom linker, Digital Mars linker
Output-artefakterStyrer eksporttabellen for en .dll og det importbibliotek (.lib), der genereres sammen med den
Tilknyttede operativsystemerWindows (primær); OS/2 (legacy); 16-bit DOS (legacy)
Moderne alternativ__declspec(dllexport) i kildekoden; .def foretrækkes stadig til stabile eksport-ordinaler og toolchain-portabilitet
Legacy 16-bit nøgleordCODE- og DATA-segmentattributsætninger findes i 16-bit Windows/OS/2 DEF-filer; forældet under Win32
Komprimering og krypteringIngen - altid gemt som ukomprimeret, ukrypteret almindelig tekst
UdgivetWindows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
Seneste versionSame statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link
Specifikationlearn.microsoft.com

DEF-konverteringer

Fællesskabets Q&A

spurgt af brugere
Stil et hurtigt spørgsmål
Få hjælp fra folk, der arbejder med DEF-filer. Vær specifik - medtag dit system og din softwareversion.
Ingen konto nødvendig · svar normalt inden for en dag

Ingen spørgsmål endnu - vær den første til at spørge om DEF-filer.

Ofte stillede spørgsmål

Hvad er en .def-fil i programmering?
En moduldefinitionsfil: en liste i almindelig tekst over linker-direktiver - primært en EXPORTS-sektion, der navngiver de funktioner, en DLL skal eksponere. Du sender den til linkeren (link /DEF:navn.def), når du bygger en Windows DLL eller EXE.
Hvordan åbner jeg en .def-fil?
Det er almindelig tekst - åbn den i VS Code, Notepad++ eller editoren inde i Visual Studio. For at bruge den i et build skal du tilføje den til dit projekts linker-indstilling for Module-Definition File (/DEF).
Har jeg stadig brug for en .def-fil, hvis jeg bruger __declspec(dllexport)?
Ofte ikke - eksportattributter på kildeniveau dækker de fleste tilfælde. Men .def er stadig nyttig til stabile eksport-ordinaler, eksport af udekorede C-navne eller toolchains/legacy-projekter, der forventer det.
Hvordan opretter jeg en .lib fra en .def?
Brug MSVC LIB-værktøjet: lib /DEF:navn.def /OUT:navn.lib /MACHINE:X64 (eller MinGW's dlltool). Dette bygger et importbibliotek, så anden kode kan linke mod den DLL, som .def-filen beskriver.
Hvorfor rapporterer min linker manglende eksporter?
Ofte er symbolet ikke angivet i .def-filens EXPORTS-sektion, navnet er dekoreret anderledes end forventet, eller ordinalen er ændret. Kontroller, at EXPORTS-listen matcher de faktiske funktionsnavne og sendes til linkeren.
Min .def-fil er ikke en linker-fil - hvad bruger ellers .def?
Flere urelaterede programmer genbruger .def til deres egne «definitionsdata» - spilkort-definitioner (f.eks. Tibia), database/GIS-skemaer (SmartWare, ArcView) eller Modula-2/Oberon-modulgrænseflader. Det er forskellige formater, der deler filtypen.

Referencer

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

Udforsk mere

på tværs af databasen

Populære filtyper i denne uge

1.AQQAQQ Instant Messenger File
2.CRDOWNLOADChrome Partial Download File
3.MDMarkdown Document
4.BINCD/DVD Disc Image (BIN/CUE)
5.PARTPartial Download File
6.RPMSGRestricted Permission Message
7.NOMEDIAAndroid No-Media Marker File
8.EXEWindows Executable (Portable Executable)
9.AVIFAV1 Image File Format (AVIF)
10.ICSiCalendar data file

Relaterede filtyper

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

Gratis filværktøjer

En fil-identifikator og billedkonverter direkte i browseren - alt kører på din enhed.

Åbn værktøjskassen

Gennemse filtyper A-Å