.DEF

DEF Datei

Module-Definition File
Frage stellen
SCHNELLE ANTWORT

Eine DEF-Datei ist eine reine Textdatei mit Linker-Direktiven - meist eine EXPORTS-Liste, die dem Windows-Linker mitteilt, welche Funktionen eine DLL bereitstellen soll. Öffnen Sie sie in einem beliebigen Texteditor wie VS Code oder Notepad++. Es handelt sich um eine Build-Eingabe, die mit /DEF:name.def an den Linker übergeben wird, nicht um ein ausführbares Programm.

Entwickler: Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars) Kategorie: Developerdateien MIME: text/plain
VERFÜGBAR AUF Windows macOS Linux
Verwandt: .DO · .MD · .HEX · .XSD

Auf dieser Seite

19k+ Erweiterungen indexiert
Zuletzt geprüft Jul 13, 2026

Nicht sicher, was Ihre Datei ist?

Legen Sie eine beliebige Datei in unseren Identifikator - wir lesen nur die ersten Bytes, um das Format zu benennen.

Datei identifizieren

Was ist das DEF-Dateiformat?

.def-Dateien werden mit Windows- und OS/2-Entwicklungsumgebungen assoziiert und zusammen mit C, C++ und anderen kompilierten Sprachen verwendet.

Dateien mit der Endung .def speichern Daten im Klartextformat. .def-Dateien werden manchmal als Moduldefinitionsdateien bezeichnet und zur Erstellung von DLL-Bibliotheken verwendet. Eine .def-Datei speichert einen speziellen Satz von Linker-Direktiven - Anweisungen wie LIBRARY, EXPORTS, IMPORTS, SECTIONS, HEAPSIZE und STACKSIZE -, die dazu dienen, Schlüsselaspekte einer DLL-Bibliothek zu definieren, einschließlich der Frage, welche Funktionen und Datensymbole für Aufrufer offengelegt werden und welche Ordinalzahlen sie tragen.

Die Datei wird zur Build-Zeit mit dem Schalter /DEF:name.def (MSVC) oder entsprechenden Flags in MinGW/GCC und LLVM lld-link an den Linker übergeben. Es handelt sich um eine Build-Eingabe, nicht um ein kompiliertes Artefakt; das resultierende Binärformat ist eine .dll oder .exe.

Eine DLL ist eine Bibliotheksdatei, die ausführbaren Code und andere zugehörige Daten speichert. DLL-Dateien sind wiederverwendbar - sie können von mehreren Anwendungen gleichzeitig aufgerufen werden - und werden bei Bedarf dynamisch geladen. DLL-Dateien sind aufgrund ihrer dynamischen Natur auch ein Mittel zur Einsparung von Festplattenplatz und Arbeitsspeicher. Die Aktualisierung von Software ist ebenfalls einfacher, da DLL-Dateien von mehreren Anwendungen gemeinsam genutzt werden.

Moderne C/C++-Compiler ermöglichen es Entwicklern, exportierte Symbole direkt im Quellcode mit __declspec(dllexport) zu markieren, was die Notwendigkeit einer separaten .def-Datei weitgehend reduziert. Dennoch werden .def-Dateien weiterhin vom aktuellen MSVC-Linker (link.exe) und LLVM lld-link unterstützt und werden immer noch bevorzugt, wenn eine stabile, explizit geordnete Exporttabelle erforderlich ist.

Sicherheit

RISIKO: LOW

Eine Moduldefinitionsdatei (.def) ist eine winzige Klartext-Build-Datei und kann sicher geöffnet und gelesen werden - sie kann nicht ausgeführt werden. Das einzige praktische Risiko besteht darin, sie in einem echten Projekt zu bearbeiten: Das Ändern oder Entfernen eines EXPORTS-Eintrags verändert die öffentliche Schnittstelle der DLL und kann Aufrufer beschädigen oder Export-Ordinalzahlen ändern. Verstehen Sie daher die ABI-Auswirkungen vor der Bearbeitung. Vertrauen Sie .def-Dateien wie jeder Quelldatei nur aus Projektquellen, die Sie kontrollieren.

Formatdetails

kurz gefasst
VOLLSTÄNDIGER NAMEModule-Definition Filealias Module Definition File, DEF file
ENTWICKLERMicrosoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars)seit Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
MIME TYPEtext/plain
TYPKlartext-Linker-Direktivendatei (Anweisungen: LIBRARY, EXPORTS, IMPORTS...)
Diese Erweiterung wird auch verwendet von…
  • Tibia / OTClient Kartendatei (.def) - Einige Spiele-Tools und der Tibia-Karteneditor verwendeten .def für Karten-/Spawn-Definitionen - nicht verwandt mit Linkern.
  • ESRI ArcView / SmartWare Datendefinition - Ältere Datenbank- und GIS-Tools (SmartWare, ArcView, DataFlex) schrieben eigene .def-Schema-/Definitionsdateien.
  • AniSprite Animationsdefinition / Oberon-2 & Modula-2 DEFINITION Modul - AniSprite speicherte Sprite-Animationsdefinitionen in .def; Modula-2/Oberon verwenden .def für die öffentliche Schnittstelle eines Moduls.

Programme zum Öffnen von DEF-Dateien

Windows4 apps
Windows Notepad Integriert Öffnen mit > Editor für ein schnelles Lesen einer kleinen .def; bietet keine Syntaxhilfe.
Notepad Open Source Rechtsklick > Bearbeiten mit Notepad++, um die Linker-Direktiven mit Zeilennummern anzuzeigen/zu bearbeiten.
Visual Studio Code Kostenlos Öffnen Sie die .def, um die EXPORTS-Liste als Klartext zu lesen/bearbeiten. Beste kostenlose allgemeine Wahl.
Visual Studio (MSVC) Freemium Fügen Sie die .def einem Projekt hinzu und übergeben Sie sie über Linker > Eingabe > Moduldefinitionsdatei (/DEF). Visual Studio öffnet sie auch als Text zur Bearbeitung.
macOS1 app
Visual Studio Code Kostenlos Öffnen Sie die .def, um die EXPORTS-Liste als Klartext zu lesen/bearbeiten. Beste kostenlose allgemeine Wahl.
Linux2 apps
nano / vim Open Source Bearbeiten im Terminal beim Cross-Building von Windows-DLLs (MinGW-w64/LLVM verarbeiten .def über -Wl,--def oder /DEF).
Visual Studio Code Kostenlos Öffnen Sie die .def, um die EXPORTS-Liste als Klartext zu lesen/bearbeiten. Beste kostenlose allgemeine Wahl.

Technische Details

technische Spezifikation
Format-TypKlartext-Linker-Direktivendatei
MIME-Typtext/plain
ZeichenkodierungASCII / ANSI; UTF-8 ohne BOM ist typisch
Dateisignatur (Magic Bytes)Keine - identifiziert durch Schlüsselwörter wie LIBRARY, EXPORTS oder NAME am Zeilenanfang
Typische DateigrößeUnter 1 KB bis zu wenigen KB (ein exportiertes Symbol pro Zeile)
Kernanweisung: LIBRARY / NAMEDeklariert den Modulnamen, der im internen Header der DLL eingebettet ist
Kernanweisung: EXPORTSListet jedes zu exportierende Symbol auf, mit optionalen Flags für Ordinalzahlen (@N), NONAME und DATA
Zusätzliche AnweisungenIMPORTS, SECTIONS (setzt Sektionsattribute), HEAPSIZE, STACKSIZE
Linker-Schalter (MSVC)/DEF:dateiname.def wird zur Build-Zeit an link.exe übergeben
Unterstützte ToolchainsMSVC link.exe, MinGW/GCC ld, LLVM lld-link, Watcom-Linker, Digital Mars-Linker
AusgabeartefakteSteuert die Exporttabelle einer .dll und die daneben generierte Importbibliothek (.lib)
Zugehörige BetriebssystemeWindows (primär); OS/2 (legacy); 16-Bit DOS (legacy)
Moderne Alternative__declspec(dllexport) im Quellcode; .def wird weiterhin für stabile Export-Ordinalzahlen und Toolchain-Portabilität bevorzugt
Legacy 16-Bit SchlüsselwörterCODE- und DATA-Segmentattribut-Anweisungen in 16-Bit Windows/OS/2 DEF-Dateien; unter Win32 veraltet
Kompression und VerschlüsselungKeine - immer als unkomprimierter, unverschlüsselter Klartext gespeichert
VeröffentlichtWindows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
Neueste VersionSame statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link
Spezifikationlearn.microsoft.com

DEF-Konvertierungen

Community Q&A

von Nutzern gefragt
Schnelle Frage stellen
Holen Sie sich Hilfe von Menschen, die mit DEF-Dateien arbeiten. Seien Sie konkret - geben Sie Ihr System und die Softwareversion an.
Kein Konto erforderlich · Antworten meist innerhalb eines Tages

Noch keine Fragen - stellen Sie die erste Frage zu DEF-Dateien.

Häufig gestellte Fragen

Was ist eine .def-Datei in der Programmierung?
Eine Moduldefinitionsdatei: eine Klartextliste von Linker-Direktiven - hauptsächlich ein EXPORTS-Abschnitt, der die Funktionen benennt, die eine DLL offenlegen soll. Sie übergeben sie beim Erstellen einer Windows-DLL oder -EXE an den Linker (link /DEF:name.def).
Wie öffne ich eine .def-Datei?
Es ist reiner Text - öffnen Sie sie in VS Code, Notepad++ oder dem Editor in Visual Studio. Um sie in einem Build zu verwenden, fügen Sie sie der Linker-Einstellung «Module-Definition File» (/DEF) Ihres Projekts hinzu.
Benötige ich noch eine .def-Datei, wenn ich __declspec(dllexport) verwende?
Oft nicht - Export-Attribute auf Quellcode-Ebene decken die meisten Fälle ab. Aber .def ist immer noch nützlich für stabile Export-Ordinalzahlen, den Export von unformatierten C-Namen oder für Toolchains/Legacy-Projekte, die dies erwarten.
Wie erstelle ich eine .lib aus einer .def?
Verwenden Sie das MSVC-Tool LIB: lib /DEF:name.def /OUT:name.lib /MACHINE:X64 (oder dlltool von MinGW). Dies erstellt eine Importbibliothek, damit anderer Code gegen die DLL linken kann, die in der .def beschrieben wird.
Warum meldet mein Linker fehlende Exporte?
Oft ist das Symbol nicht im EXPORTS-Abschnitt der .def aufgeführt, der Name ist anders dekoriert als erwartet oder die Ordinalzahl hat sich geändert. Prüfen Sie, ob die EXPORTS-Liste mit den tatsächlichen Funktionsnamen übereinstimmt und an den Linker übergeben wird.
Meine .def-Datei ist keine Linker-Datei - was verwendet .def sonst noch?
Mehrere nicht verwandte Programme verwenden .def für ihre eigenen «Definitionsdaten» - Spielkarten-Definitionen (z. B. Tibia), Datenbank-/GIS-Schemata (SmartWare, ArcView) oder Modula-2/Oberon-Modulschnittstellen. Dies sind unterschiedliche Formate, die sich die Dateiendung teilen.

Quellen

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

Weiter entdecken

in der Datenbank

Top-Erweiterungen dieser Woche

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

Verwandte Erweiterungen

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

Kostenlose Datei-Tools

Ein Browser-Dateiidentifikator und Bildkonverter - alles läuft auf Ihrem Gerät.

Toolbox öffnen

Dateierweiterungen A-Z durchsuchen