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: LOWUm 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- 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
Detalhes técnicos
especificação profunda| Tipo de formato | Arquivo de diretiva de vinculador em texto simples |
| Tipo MIME | text/plain |
| Codificação de caracteres | ASCII / 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ípico | Menos de 1 KB a alguns KB (um símbolo exportado por linha) |
| Instrução principal: LIBRARY / NAME | Declara o nome do módulo incorporado no cabeçalho interno da DLL |
| Instrução principal: EXPORTS | Lista cada símbolo a ser exposto, com sinalizadores opcionais de ordinal (@N), NONAME e DATA |
| Instruções adicionais | IMPORTS, 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 suportadas | MSVC link.exe, MinGW/GCC ld, LLVM lld-link, vinculador Watcom, vinculador Digital Mars |
| Artefatos de saída | Controla a tabela de exportação de um .dll e a biblioteca de importação (.lib) gerada junto com ele |
| Sistemas operacionais associados | Windows (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 bits | Instruçõ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 criptografia | Nenhuma - sempre armazenado como texto simples não compactado e não criptografado |
| Lançado | Windows / OS/2 development, late 1980s-1990s (16-bit, then Win32) |
| Versão mais recente | Same statement syntax used by the current MSVC linker (link.exe) and LLVM lld-link |
| Especificação | learn.microsoft.com |
Conversões de DEF
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos DEF.