.DEF

Plik DEF

Module-Definition File
Zadaj pytanie
SZYBKA ODPOWIEDŹ

Plik DEF to plik dyrektyw konsolidatora (linkera) w formacie tekstowym - najczęściej lista EXPORTS, która informuje konsolidator Windows, jakie funkcje powinna udostępniać biblioteka DLL. Można go otworzyć w dowolnym edytorze tekstu, takim jak VS Code lub Notepad++. Jest to plik wejściowy procesu budowania przekazywany do konsolidatora za pomocą przełącznika /DEF:nazwa.def, a nie program, który się uruchamia.

Deweloper: Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars) Kategoria: Pliki developerskie MIME: text/plain
OTWIERA SIĘ NA Windows macOS Linux
Powiązane: .DO · .MD · .HEX · .XSD

Na tej stronie

Zindeksowano 19k+ rozszerzeń
Ostatnia weryfikacja Jul 13, 2026

Nie wiesz, co to za plik?

Przeciągnij dowolny plik do naszego identyfikatora - odczytujemy tylko pierwsze bajty, aby nazwać format.

Zidentyfikuj plik

Co to jest format pliku DEF?

Pliki .def są powiązane ze środowiskami programistycznymi Windows oraz OS/2, używanymi wraz z językami C, C++ i innymi językami kompilowanymi.

Pliki z rozszerzeniem .def przechowują dane w formacie czystego tekstu. Pliki .def są czasami nazywane plikami definicji modułów i służą do generowania bibliotek DLL. Plik .def przechowuje specjalny zestaw dyrektyw konsolidatora - instrukcji takich jak LIBRARY, EXPORTS, IMPORTS, SECTIONS, HEAPSIZE oraz STACKSIZE - używanych do definiowania kluczowych aspektów biblioteki DLL, w tym tego, które funkcje i symbole danych są udostępniane wywołującym oraz jakie numery porządkowe (ordinals) posiadają.

Plik jest przekazywany do konsolidatora w czasie budowania przy użyciu przełącznika /DEF:nazwa.def (MSVC) lub odpowiednich flag w MinGW/GCC i LLVM lld-link. Jest to element wejściowy kompilacji, a nie skompilowany artefakt; wynikowym plikiem binarnym jest .dll lub .exe.

DLL to plik biblioteki, który przechowuje kod wykonywalny i inne powiązane dane. Pliki DLL są wielokrotnego użytku - mogą być dostępne dla wielu aplikacji jednocześnie - i są ładowane dynamicznie w razie potrzeby. Pliki DLL są również sposobem na oszczędność miejsca na dysku i pamięci operacyjnej dzięki swojej dynamicznej naturze. Aktualizacja oprogramowania jest również łatwiejsza dzięki temu, że pliki DLL są współdzielone przez wiele aplikacji.

Nowoczesne kompilatory C/C++ pozwalają programistom oznaczać eksportowane symbole bezpośrednio w kodzie źródłowym za pomocą __declspec(dllexport), co w dużej mierze eliminuje potrzebę posiadania osobnego pliku .def. Jednak pliki .def pozostają obsługiwane przez obecny konsolidator MSVC (link.exe) oraz LLVM lld-link i nadal są preferowane, gdy wymagana jest stabilna, jawnie uporządkowana tabela eksportu.

Bezpieczeństwo

RYZYKO: LOW

Plik definicji modułu .def to mały tekstowy plik budowania i jest bezpieczny do otwarcia i odczytu - nie może się uruchomić. Jedynym praktycznym ryzykiem jest edytowanie go w rzeczywistym projekcie: zmiana lub usunięcie wpisu EXPORTS zmienia publiczny interfejs biblioteki DLL i może zepsuć aplikacje wywołujące lub zmienić numery porządkowe eksportu, więc przed edycją należy zrozumieć wpływ na ABI. Jak w przypadku każdego pliku źródłowego, ufaj tylko plikom .def pochodzącym z kontrolowanych źródeł projektu.

Szczegóły formatu

w pigułce
PEŁNA NAZWAModule-Definition Fileznany również jako Module Definition File, DEF file
DEWELOPERMicrosoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars)od Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
TYP MIMEtext/plain
TYPTekstowy plik dyrektyw konsolidatora (instrukcje: LIBRARY, EXPORTS, IMPORTS...)
POWIĄZANE.do.md.hex.xsd
To rozszerzenie jest również używane przez…
  • Plik mapy Tibia / OTClient (.def) - Niektóre narzędzia do gier i edytor map Tibia używały .def do definicji map/spawnów - niepowiązane z konsolidatorami.
  • Definicja danych ESRI ArcView / SmartWare - Starsze narzędzia bazodanowe i GIS (SmartWare, ArcView, DataFlex) zapisywały własne pliki schematów/definicji .def.
  • Definicja animacji AniSprite / moduł DEFINITION Oberon-2 i Modula-2 - AniSprite przechowywał definicje animacji duszków w .def; Modula-2/Oberon używają .def dla publicznego interfejsu modułu.

Programy otwierające pliki DEF

Windows4 apps
Windows Notepad Wbudowany Otwórz za pomocą > Notatnik, aby szybko przeczytać mały plik .def; brak podświetlania składni.
Notepad Open-source Kliknij prawym przyciskiem myszy > Edytuj w Notepad++, aby przeglądać/edytować dyrektywy konsolidatora z numeracją linii.
Visual Studio Code Darmowy Otwórz .def, aby czytać/edytować listę EXPORTS jako zwykły tekst. Najlepszy darmowy wybór ogólny.
Visual Studio (MSVC) Freemium Dodaj .def do projektu i przekaż go przez Linker > Input > Module Definition File (/DEF). Visual Studio otwiera go również jako tekst do edycji.
macOS1 app
Visual Studio Code Darmowy Otwórz .def, aby czytać/edytować listę EXPORTS jako zwykły tekst. Najlepszy darmowy wybór ogólny.
Linux2 apps
nano / vim Open-source Edytuj w terminalu podczas kompilacji skrośnej bibliotek DLL dla Windows (MinGW-w64/LLVM przyjmują .def przez -Wl,--def lub /DEF).
Visual Studio Code Darmowy Otwórz .def, aby czytać/edytować listę EXPORTS jako zwykły tekst. Najlepszy darmowy wybór ogólny.

Szczegóły techniczne

specyfikacja
Typ formatuTekstowy plik dyrektyw konsolidatora
Typ MIMEtext/plain
Kodowanie znakówASCII / ANSI; typowo UTF-8 bez BOM
Sygnatura pliku (magic bytes)Brak - identyfikowany przez słowa kluczowe takie jak LIBRARY, EXPORTS lub NAME na początku linii
Typowy rozmiar plikuPoniżej 1 KB do kilku KB (jeden eksportowany symbol na linię)
Główna instrukcja: LIBRARY / NAMEDeklaruje nazwę modułu osadzoną w wewnętrznym nagłówku biblioteki DLL
Główna instrukcja: EXPORTSWymienia każdy symbol do udostępnienia, z opcjonalnymi flagami numeru porządkowego (@N), NONAME i DATA
Dodatkowe instrukcjeIMPORTS, SECTIONS (ustawianie atrybutów sekcji), HEAPSIZE, STACKSIZE
Przełącznik konsolidatora (MSVC)/DEF:nazwapliku.def przekazywany do link.exe w czasie budowania
Obsługiwane łańcuchy narzędziMSVC link.exe, MinGW/GCC ld, LLVM lld-link, konsolidator Watcom, konsolidator Digital Mars
Artefakty wyjścioweKontroluje tabelę eksportu pliku .dll oraz generowaną wraz z nim bibliotekę importową (.lib)
Powiązane systemy operacyjneWindows (główny); OS/2 (przestarzały); 16-bitowy DOS (przestarzały)
Nowoczesna alternatywa__declspec(dllexport) w kodzie źródłowym; .def nadal preferowany dla stabilnych numerów porządkowych i przenośności narzędzi
Starsze słowa kluczowe 16-bitoweInstrukcje atrybutów segmentów CODE i DATA obecne w 16-bitowych plikach DEF dla Windows/OS/2; przestarzałe w Win32
Kompresja i szyfrowanieBrak - zawsze przechowywany jako nieskompresowany, nieszyfrowany czysty tekst
WydanoWindows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
Najnowsza wersjaSame statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link
Specyfikacjalearn.microsoft.com

Konwersje DEF

Pytania i odpowiedzi społeczności

pytania użytkowników
Zadaj szybkie pytanie
Uzyskaj pomoc od osób pracujących z plikami DEF. Bądź precyzyjny - podaj system i wersję oprogramowania.
Konto nie jest wymagane · odpowiedzi zazwyczaj w ciągu doby

Brak pytań - bądź pierwszą osobą, która zapyta o pliki DEF.

Najczęściej zadawane pytania

Co to jest plik .def w programowaniu?
Plik definicji modułu: tekstowa lista dyrektyw konsolidatora - głównie sekcja EXPORTS wymieniająca funkcje, które biblioteka DLL powinna udostępniać. Przekazuje się go do konsolidatora (link /DEF:nazwa.def) podczas budowania pliku DLL lub EXE w systemie Windows.
Jak otworzyć plik .def?
To czysty tekst - otwórz go w VS Code, Notepad++ lub edytorze wewnątrz Visual Studio. Aby użyć go w procesie budowania, dodaj go do ustawienia Module-Definition File (/DEF) w opcjach konsolidatora projektu.
Czy nadal potrzebuję pliku .def, jeśli używam __declspec(dllexport)?
Często nie - atrybuty eksportu na poziomie kodu źródłowego pokrywają większość przypadków. Jednak .def jest nadal przydatny do zachowania stabilnych numerów porządkowych eksportu, eksportowania nieudekorowanych nazw C lub w łańcuchach narzędzi i starszych projektach, które go wymagają.
Jak utworzyć plik .lib z pliku .def?
Użyj narzędzia MSVC LIB: lib /DEF:nazwa.def /OUT:nazwa.lib /MACHINE:X64 (lub dlltool w MinGW). Tworzy to bibliotekę importową, dzięki czemu inny kod może konsolidować się z biblioteką DLL opisaną przez .def.
Dlaczego mój konsolidator zgłasza brakujące eksporty?
Często symbol nie jest wymieniony w sekcji EXPORTS pliku .def, nazwa jest udekorowana inaczej niż oczekiwano lub zmienił się numer porządkowy. Sprawdź, czy lista EXPORTS zgadza się z rzeczywistymi nazwami funkcji i czy jest przekazywana do konsolidatora.
Mój plik .def nie jest plikiem konsolidatora - co jeszcze używa .def?
Kilka niepowiązanych programów używa rozszerzenia .def dla własnych danych „definicji” - definicji map w grach (np. Tibia), schematów baz danych/GIS (SmartWare, ArcView) lub interfejsów modułów Modula-2/Oberon. Są to inne formaty współdzielące to samo rozszerzenie.

Źródła

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

Odkrywaj dalej

w całej bazie danych

Najpopularniejsze rozszerzenia w tym tygodniu

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

Powiązane rozszerzenia

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

Darmowe narzędzia do plików

Identyfikator plików i konwerter obrazów w przeglądarce - wszystko działa na Twoim urządzeniu.

Otwórz przybornik

Przeglądaj rozszerzenia plików A-Z