.DEF

Archivo DEF

Module-Definition File
Hacer una pregunta
RESPUESTA RÁPIDA

Un archivo DEF es un archivo de directivas del enlazador en texto plano; comúnmente una lista de EXPORTS que indica al enlazador de Windows qué funciones debe exponer una DLL. Ábralo en cualquier editor de texto como VS Code o Notepad++. Es una entrada de compilación que se pasa al enlazador con /DEF:nombre.def, no un programa que se ejecute.

Desarrollador: Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars) Categoría: Archivos de desarrollo MIME: text/plain
SE ABRE EN Windows macOS Linux
Relacionado: .DO · .MD · .HEX · .XSD

En esta página

19k+ extensiones indexadas
Última revisión Jul 13, 2026

¿No está seguro de qué es su archivo?

Suelte cualquier archivo en nuestro identificador - leemos solo los primeros bytes para nombrar el formato.

Identificar un archivo

¿Qué es el formato de archivo DEF?

Los archivos .def están asociados con entornos de desarrollo de Windows y OS/2, utilizados junto con C, C++ y otros lenguajes compilados.

Los archivos con la extensión .def almacenan datos en formato de texto plano. Los archivos .def a veces se denominan archivos de definición de módulo y se utilizan para generar bibliotecas DLL. Un archivo .def almacena un conjunto especial de directivas del enlazador -sentencias como LIBRARY, EXPORTS, IMPORTS, SECTIONS, HEAPSIZE y STACKSIZE- utilizadas para definir aspectos clave de una biblioteca DLL, incluyendo qué funciones y símbolos de datos se exponen a los llamadores y qué números ordinales llevan.

El archivo se pasa al enlazador en el momento de la compilación utilizando el modificador /DEF:nombre.def (MSVC) o indicadores equivalentes en MinGW/GCC y LLVM lld-link. Es una entrada de compilación, no un artefacto compilado; el binario resultante es un .dll o .exe.

Una DLL es un archivo de biblioteca que almacena código ejecutable y otros datos relacionados. Los archivos DLL son reutilizables -pueden ser accedidos por múltiples aplicaciones simultáneamente- y se cargan dinámicamente cuando es necesario. Los archivos DLL también son un medio para ahorrar espacio en disco y memoria operativa debido a su naturaleza dinámica. La actualización del software también es más fácil debido al hecho de que los archivos DLL se comparten entre múltiples aplicaciones.

Los compiladores modernos de C/C++ permiten a los desarrolladores marcar los símbolos exportados directamente en el código fuente utilizando __declspec(dllexport), lo que reduce en gran medida la necesidad de un archivo .def separado. Sin embargo, los archivos .def siguen siendo compatibles con el enlazador MSVC actual (link.exe) y LLVM lld-link, y se siguen prefiriendo cuando se requiere una tabla de exportación estable y explícitamente ordenada.

Seguridad y protección

RIESGO: LOW

Un archivo .def de definición de módulo es un pequeño archivo de compilación en texto plano y es seguro de abrir y leer - no puede ejecutarse. El único riesgo práctico es editarlo en un proyecto real: cambiar o eliminar una entrada de EXPORTS altera la interfaz pública de la DLL y puede romper los llamadores o cambiar los ordinales de exportación, así que comprenda el impacto en la ABI antes de editar. Como con cualquier archivo fuente, solo confíe en archivos .def de fuentes de proyectos que usted controle.

Detalles del formato

en pocas palabras
NOMBRE COMPLETOModule-Definition Filetambién conocido como Module Definition File, DEF file
DESARROLLADORMicrosoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars)desde Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
TIPO MIMEtext/plain
TIPOArchivo de directivas del enlazador en texto plano (sentencias: LIBRARY, EXPORTS, IMPORTS...)
RELACIONADO.do.md.hex.xsd
Esta extensión también es utilizada por…
  • Archivo de mapa de Tibia / OTClient (.def) - Algunas herramientas de juegos y el editor de mapas de Tibia usaban .def para definiciones de mapas/apariciones - no relacionado con enlazadores.
  • Definición de datos ESRI ArcView / SmartWare - Herramientas antiguas de bases de datos y GIS (SmartWare, ArcView, DataFlex) escribían sus propios archivos de esquema/definición .def.
  • Definición de animación AniSprite / Módulo DEFINITION de Oberon-2 y Modula-2 - AniSprite almacenaba definiciones de animación de sprites en .def; Modula-2/Oberon usan .def para la interfaz pública de un módulo.

Programas que abren archivos DEF

Windows4 apps
Windows Notepad Integrado Abrir con > Bloc de notas para una lectura rápida de un .def pequeño; carece de ayuda de sintaxis.
Notepad Código abierto Clic derecho > Editar con Notepad++ para ver/editar las directivas del enlazador con números de línea.
Visual Studio Code Gratis Abra el .def para leer/editar la lista EXPORTS como texto plano. La mejor opción general gratuita.
Visual Studio (MSVC) Freemium Agregue el .def a un proyecto y páselo a través de Enlazador > Entrada > Archivo de definición de módulo (/DEF). Visual Studio también lo abre como texto para editar.
macOS1 app
Visual Studio Code Gratis Abra el .def para leer/editar la lista EXPORTS como texto plano. La mejor opción general gratuita.
Linux2 apps
nano / vim Código abierto Edite en la terminal cuando realice compilación cruzada de DLL de Windows (MinGW-w64/LLVM consumen .def mediante -Wl,--def o /DEF).
Visual Studio Code Gratis Abra el .def para leer/editar la lista EXPORTS como texto plano. La mejor opción general gratuita.

Detalles técnicos

especificación profunda
Tipo de formatoArchivo de directivas del enlazador en texto plano
Tipo MIMEtext/plain
Codificación de caracteresASCII / ANSI; UTF-8 sin BOM es lo habitual
Firma de archivo (bytes mágicos)Ninguna - identificado por palabras clave como LIBRARY, EXPORTS o NAME al inicio de las líneas
Tamaño de archivo típicoMenos de 1 KB a unos pocos KB (un símbolo exportado por línea)
Sentencia principal: LIBRARY / NAMEDeclara el nombre del módulo incrustado en la cabecera interna de la DLL
Sentencia principal: EXPORTSEnumera cada símbolo a exponer, con indicadores opcionales de ordinal (@N), NONAME y DATA
Sentencias adicionalesIMPORTS, SECTIONS (establece atributos de sección), HEAPSIZE, STACKSIZE
Modificador del enlazador (MSVC)/DEF:nombre_archivo.def pasado a link.exe en el momento de la compilación
Cadenas de herramientas compatiblesMSVC link.exe, MinGW/GCC ld, LLVM lld-link, enlazador Watcom, enlazador Digital Mars
Artefactos de salidaControla la tabla de exportación de un .dll y la biblioteca de importación (.lib) generada junto a él
Sistemas operativos asociadosWindows (principal); OS/2 (heredado); DOS de 16 bits (heredado)
Alternativa moderna__declspec(dllexport) en el código fuente; .def sigue siendo preferido para ordinales de exportación estables y portabilidad entre herramientas
Palabras clave heredadas de 16 bitsSentencias de atributos de segmento CODE y DATA presentes en archivos DEF de Windows/OS/2 de 16 bits; obsoletas en Win32
Compresión y cifradoNinguno - siempre se almacena como texto plano sin comprimir ni cifrar
LanzadoWindows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
Última versiónSame statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link
Especificaciónlearn.microsoft.com

Conversiones de DEF

Preguntas y respuestas de la comunidad

preguntado por usuarios
Hacer una pregunta rápida
Obtenga ayuda de personas que trabajan con archivos DEF. Sea específico: incluya su sistema y la versión del software.
No se necesita cuenta · respuestas generalmente en un día

Aún no hay preguntas; sea el primero en preguntar sobre los archivos DEF.

Preguntas frecuentes

¿Qué es un archivo .def en programación?
Un archivo de definición de módulo: una lista en texto plano de directivas del enlazador, principalmente una sección EXPORTS que nombra las funciones que una DLL debe exponer. Se pasa al enlazador (link /DEF:nombre.def) al compilar una DLL o EXE de Windows.
¿Cómo abro un archivo .def?
Es texto plano: ábralo en VS Code, Notepad++ o el editor interno de Visual Studio. Para usarlo en una compilación, agréguelo a la configuración del archivo de definición de módulo del enlazador de su proyecto (/DEF).
¿Sigo necesitando un archivo .def si uso __declspec(dllexport)?
A menudo no; los atributos de exportación a nivel de código fuente cubren la mayoría de los casos. Pero .def sigue siendo útil para ordinales de exportación estables, exportar nombres de C sin decorar o cadenas de herramientas/proyectos heredados que lo requieran.
¿Cómo creo un .lib a partir de un .def?
Use la herramienta LIB de MSVC: lib /DEF:nombre.def /OUT:nombre.lib /MACHINE:X64 (o dlltool de MinGW). Esto crea una biblioteca de importación para que otro código pueda enlazarse con la DLL que describe el .def.
¿Por qué mi enlazador informa que faltan exportaciones?
A menudo el símbolo no aparece en la sección EXPORTS del .def, el nombre está decorado de forma distinta a la esperada o el ordinal cambió. Verifique que la lista EXPORTS coincida con los nombres de función reales y que se pase al enlazador.
Mi archivo .def no es un archivo del enlazador, ¿qué más usa .def?
Varios programas no relacionados reutilizan .def para sus propios datos de «definición»: definiciones de mapas de juegos (p. ej., Tibia), esquemas de bases de datos/GIS (SmartWare, ArcView) o interfaces de módulos Modula-2/Oberon. Son formatos diferentes que comparten la extensión.

Referencias

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

Siga explorando

en toda la base de datos

Extensiones principales esta semana

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

Extensiones relacionadas

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

Herramientas de archivo gratuitas

Un identificador de archivos y convertidor de imágenes en el navegador - todo se ejecuta en su dispositivo.

Abrir la caja de herramientas

Explorar extensiones de archivo A-Z