.DEF

Arquivo DEF

Module-Definition File
Fazer uma pergunta
RESPOSTA RÁPIDA

Um arquivo DEF é um arquivo de diretiva de vinculador (linker) em texto simples - mais comumente uma lista de EXPORTS que informa ao vinculador do Windows quais funções uma DLL deve expor. Abra-o em qualquer editor de texto, como o VS Code ou Notepad++. É uma entrada de compilação passada ao vinculador com /DEF:name.def, não um programa que você executa.

Desenvolvedor: Microsoft (Windows toolchain; also used by MinGW/GCC, Watcom, Digital Mars) Categoria: Arquivos de Desenvolvedor MIME: text/plain
ABRE EM Windows macOS Linux
Relacionado: .DO · .MD · .HEX · .XSD

Nesta página

19k+ extensões indexadas
Última revisão em Jul 13, 2026

Não tem certeza do que é seu arquivo?

Arraste qualquer arquivo para o nosso identificador - lemos apenas os primeiros bytes para nomear o formato.

Identificar um arquivo

O que é o formato de ficheiro DEF?

Arquivos .def estão associados a ambientes de desenvolvimento Windows e OS/2, usados junto com C, C++ e outras linguagens compiladas.

Arquivos com a extensão .def armazenam dados em formato de texto simples. Arquivos .def às vezes são chamados de arquivos de definição de módulo e são usados para gerar bibliotecas DLL. Um arquivo .def armazena um conjunto especial de diretivas de vinculador - instruções como LIBRARY, EXPORTS, IMPORTS, SECTIONS, HEAPSIZE e STACKSIZE - usadas para definir aspectos fundamentais de uma biblioteca DLL, incluindo quais funções e símbolos de dados são expostos aos chamadores e quais números ordinais eles carregam.

O arquivo é passado ao vinculador no momento da compilação usando a chave /DEF:name.def (MSVC) ou sinalizadores equivalentes no MinGW/GCC e LLVM lld-link. É uma entrada de compilação, não um artefato compilado; o binário resultante é um .dll ou .exe.

Uma DLL é um arquivo de biblioteca que armazena código executável e outros dados relacionados. Arquivos DLL são reutilizáveis - podem ser acessados por vários aplicativos simultaneamente - e carregados dinamicamente quando necessário. Arquivos DLL também são um meio de economizar espaço em disco e memória operacional devido à sua natureza dinâmica. A atualização de software também é facilitada pelo fato de os arquivos DLL serem compartilhados entre vários aplicativos.

Compiladores C/C++ modernos permitem que os desenvolvedores marquem símbolos exportados diretamente no código-fonte usando __declspec(dllexport), reduzindo amplamente a necessidade de um arquivo .def separado. No entanto, os arquivos .def continuam sendo suportados pelo vinculador MSVC atual (link.exe) e pelo LLVM lld-link, e ainda são preferidos quando uma tabela de exportação estável e explicitamente ordenada é necessária.

Segurança e proteção

RISCO: LOW

Um arquivo .def de definição de módulo é um pequeno arquivo de compilação em texto simples e é seguro para abrir e ler - ele não pode ser executado. O único risco prático é editá-lo em um projeto real: alterar ou remover uma entrada EXPORTS altera a interface pública da DLL e pode quebrar chamadores ou alterar ordinais de exportação, portanto, entenda o impacto na ABI antes de editar. Como em qualquer arquivo de origem, confie apenas em arquivos .def de fontes de projeto que você controla.

Detalhes do formato

em resumo
NOME COMPLETOModule-Definition Filetambém conhecido como Module Definition File, DEF file
DESENVOLVEDORMicrosoft (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
TIPOArquivo de diretiva de vinculador em texto simples (instruções: LIBRARY, EXPORTS, IMPORTS...)
RELACIONADO.do.md.hex.xsd
Esta extensão também é usada por…
  • Arquivo de mapa do Tibia / OTClient (.def) - Algumas ferramentas de jogo e o editor de mapas do Tibia usavam .def para definições de mapa/spawn - não relacionado a vinculadores.
  • Definição de dados ESRI ArcView / SmartWare - Ferramentas antigas de banco de dados e GIS (SmartWare, ArcView, DataFlex) gravavam seus próprios arquivos de esquema/definição .def.
  • Definição de animação AniSprite / Módulo DEFINITION Oberon-2 & Modula-2 - O AniSprite armazenava definições de animação de sprites em .def; Modula-2/Oberon usam .def para a interface pública de um módulo.

Programas que abrem arquivos DEF

Windows4 apps
Windows Notepad Integrado Abrir com > Bloco de Notas para uma leitura rápida de um .def pequeno; carece de auxílio de sintaxe.
Notepad Código aberto Clique com o botão direito > Editar com Notepad++ para visualizar/editar as diretivas do vinculador com números de linha.
Visual Studio Code Gratuito Abra o .def para ler/editar a lista EXPORTS como texto simples. Melhor escolha geral gratuita.
Visual Studio (MSVC) Freemium Adicione o .def a um projeto e passe-o via Linker > Input > Module Definition File (/DEF). O Visual Studio também o abre como texto para edição.
macOS1 app
Visual Studio Code Gratuito Abra o .def para ler/editar a lista EXPORTS como texto simples. Melhor escolha geral gratuita.
Linux2 apps
nano / vim Código aberto Edite no terminal ao realizar compilação cruzada de DLLs do Windows (MinGW-w64/LLVM consomem .def via -Wl,--def ou /DEF).
Visual Studio Code Gratuito Abra o .def para ler/editar a lista EXPORTS como texto simples. Melhor escolha geral gratuita.

Detalhes técnicos

especificação profunda
Tipo de formatoArquivo de diretiva de vinculador em texto simples
Tipo MIMEtext/plain
Codificação de caracteresASCII / ANSI; UTF-8 sem BOM é o típico
Assinatura do arquivo (magic bytes)Nenhuma - identificado por palavras-chave como LIBRARY, EXPORTS ou NAME no início das linhas
Tamanho de arquivo típicoMenos de 1 KB a alguns KB (um símbolo exportado por linha)
Instrução principal: LIBRARY / NAMEDeclara o nome do módulo incorporado no cabeçalho interno da DLL
Instrução principal: EXPORTSLista cada símbolo a ser exposto, com sinalizadores opcionais de ordinal (@N), NONAME e DATA
Instruções adicionaisIMPORTS, SECTIONS (define atributos de seção), HEAPSIZE, STACKSIZE
Chave do vinculador (MSVC)/DEF:filename.def passado para o link.exe no momento da compilação
Cadeias de ferramentas suportadasMSVC link.exe, MinGW/GCC ld, LLVM lld-link, vinculador Watcom, vinculador Digital Mars
Artefatos de saídaControla a tabela de exportação de um .dll e a biblioteca de importação (.lib) gerada junto com ele
Sistemas operacionais associadosWindows (principal); OS/2 (legado); DOS de 16 bits (legado)
Alternativa moderna__declspec(dllexport) no código-fonte; .def ainda preferido para ordinals de exportação estáveis e portabilidade de ferramentas
Palavras-chave legadas de 16 bitsInstruções de atributo de segmento CODE e DATA presentes em arquivos DEF de 16 bits do Windows/OS/2; obsoletas no Win32
Compressão e criptografiaNenhuma - sempre armazenado como texto simples não compactado e não criptografado
LançadoWindows / OS/2 development, late 1980s-1990s (16-bit, then Win32)
Versão mais recenteSame statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link
Especificaçãolearn.microsoft.com

Conversões de DEF

Perguntas e Respostas da Comunidade

perguntado por usuários
Faça uma pergunta rápida
Obtenha ajuda de pessoas que trabalham com arquivos DEF. Seja específico - inclua seu sistema e a versão do software.
Não é necessário criar conta · respostas geralmente em um dia

Ainda não há perguntas - seja o primeiro a perguntar sobre arquivos DEF.

Perguntas frequentes

O que é um arquivo .def em programação?
Um arquivo de definição de módulo: uma lista em texto simples de diretivas de vinculador - principalmente uma seção EXPORTS nomeando as funções que uma DLL deve expor. Você o passa para o vinculador (link /DEF:name.def) ao compilar uma DLL ou EXE do Windows.
Como eu abro um arquivo .def?
É texto simples - abra-o no VS Code, Notepad++ ou no editor dentro do Visual Studio. Para usá-lo em uma compilação, adicione-o à configuração de Arquivo de Definição de Módulo (/DEF) do vinculador do seu projeto.
Ainda preciso de um arquivo .def se eu usar __declspec(dllexport)?
Geralmente não - atributos de exportação no nível do código cobrem a maioria dos casos. Mas o .def ainda é útil para ordinais de exportação estáveis, exportação de nomes C não decorados ou cadeias de ferramentas/projetos legados que o exigem.
Como crio um .lib a partir de um .def?
Use a ferramenta LIB do MSVC: lib /DEF:name.def /OUT:name.lib /MACHINE:X64 (ou o dlltool do MinGW). Isso cria uma biblioteca de importação para que outro código possa se vincular à DLL que o .def descreve.
Por que meu vinculador relata exportações ausentes?
Muitas vezes o símbolo não está listado na seção EXPORTS do .def, o nome está decorado de forma diferente do esperado ou o ordinal mudou. Verifique se a lista EXPORTS corresponde aos nomes reais das funções e se é passada ao vinculador.
Meu arquivo .def não é um arquivo de vinculador - o que mais usa .def?
Vários programas não relacionados reutilizam .def para seus próprios dados de «definição» - definições de mapas de jogos (ex: Tibia), esquemas de banco de dados/GIS (SmartWare, ArcView) ou interfaces de módulo Modula-2/Oberon. Esses são formatos diferentes que compartilham a extensão.

Referências

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

Continue explorando

em todo o banco de dados

Principais extensões desta 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

Extensões relacionadas

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

Ferramentas de arquivo gratuitas

Um identificador de arquivos e conversor de imagens no navegador - tudo funciona no seu dispositivo.

Abrir a caixa de ferramentas

Navegar por extensões de arquivo A-Z