O que é o formato de ficheiro RES?
A extensão de arquivo .res é usada pelo formato de arquivo de recurso compilado do Windows, produzido durante o processo de compilação de programas Win32 pelo Compilador de Recursos (rc.exe). Arquivos .res armazenam recursos binários usados por um determinado programa, incluindo cursores, fontes, imagens bitmap, ícones, sons, definições de diálogo, tabelas de strings, menus e informações de versão.
Um script de origem .rc é a entrada legível por humanos; compilá-lo com o rc.exe gera um pacote binário .res, que o vinculador (link.exe) então mescla em um executável .exe ou biblioteca .dll finalizado.
Um arquivo .res Win32, em contraste com os arquivos Win16 mais antigos, suporta Unicode - os identificadores de tipo e nome de recurso podem ser codificados como strings Unicode. O formato binário começa com uma entrada de recurso nula (vazia) obrigatória que ocupa 32 bytes no deslocamento 0, que atua como a assinatura prática do arquivo e não existia na variante de 16 bits.
Tipos de recursos comuns incorporados em um arquivo .res incluem:
RT_ICON/RT_CURSOR- ícones de aplicativos e cursores de mouseRT_BITMAP- imagens BMP incorporadasRT_DIALOG,RT_MENU,RT_STRING- definições de UI e tabelas de stringsRT_VERSION- metadados de versão do arquivo exibidos nas propriedades do Windows ExplorerRT_MANIFEST- manifesto de montagem lado a lado para configurações de UAC e estilos visuais
Cada entrada de recurso carrega um identificador de idioma (LANGID), permitindo que o mesmo arquivo .res contenha variantes localizadas de strings e diálogos para múltiplas localidades.
Segurança e proteção
RISCO: LOWUm .res compilado consiste em dados binários passivos (ícones, diálogos, strings); não é executável por si só, portanto, abri-lo em um editor de recursos é seguro. A cautela no mundo real deve-se ao fato de a extensão .res ser reutilizada: um arquivo chamado .res pode ser, em vez disso, um arquivo de ativos de jogo/app ou um arquivo de resultados de simulação. Além disso, ferramentas de «edição de recursos» são às vezes usadas para adulterar ou crackear programas existentes - editar recursos dentro do .exe/.dll assinado de outra pessoa quebra sua assinatura digital e pode violar sua licença.
Detalhes do formato
em resumo- Embarcadero/Borland Delphi & C++Builder .res - Projetos Delphi/C++Builder incluem um .res compilado (ícones, info de versão) vinculado ao binário - mesmo formato de recurso do Windows.
- Arquivo de dados de 'recursos' genérico (jogos/apps) - Alguns jogos e aplicativos nomeiam um arquivo de ativos/dados compactados como '.res'; ele é específico do aplicativo, não o formato de recurso do Windows.
- ANSYS / arquivo de resultados de engenharia - Algumas ferramentas de simulação (ex: ANSYS) gravam resultados de análise em um arquivo .res, não relacionado aos recursos do Windows.
Programas que abrem arquivos RES
Detalhes técnicos
especificação profunda| Tipo de formato | Pacote de recursos binários compilados; um artefato de compilação intermediário, não um executável autônomo |
| Produzido por | `rc.exe` (Windows Resource Compiler), incluído no Windows SDK e nas ferramentas de compilação do Visual Studio |
| Consumido por | Vinculador `link.exe`, que incorpora os dados de recurso no `.exe` ou `.dll` final no momento da vinculação |
| Estrutura do arquivo | Sequência de entradas de recursos de comprimento variável; cada entrada possui um cabeçalho de layout fixo (tamanho dos dados, tamanho do cabeçalho, tipo, nome, versão dos dados, sinalizadores de memória, ID de idioma, versão, características) seguido pelos dados brutos do recurso |
| Assinatura do arquivo | Entrada de recurso nula de 32 bytes no deslocamento 0: tamanho dos dados `0x00000000`, tamanho do cabeçalho `0x00000020`, marcadores de tipo/nome `0xFFFF 0x0000 0xFFFF 0x0000` |
| Ordem dos bytes | Little-endian; todos os inteiros de vários bytes armazenados na ordem de bytes Intel (LE) |
| Alinhamento | Os dados de cada entrada de recurso são preenchidos até um limite de DWORD (4 bytes) dentro do arquivo |
| Suporte a Unicode | Os identificadores de tipo e nome de recurso são compatíveis com Unicode; IDs ordinais usam um prefixo word `0xFFFF`, IDs de string são UTF-16LE embutidos terminados em nulo |
| ID de Idioma (LANGID) | Cada entrada de recurso armazena um LANGID do Windows, permitindo múltiplas variantes localizadas do mesmo tipo/nome de recurso em um único arquivo |
| Win32 vs Win16 | O `.res` de 32 bits é binariamente incompatível com o `.res` Win16 de 16 bits; o Win16 carecia do sentinela de cabeçalho nulo e usava um layout de registro diferente sem suporte a Unicode |
| Tipos de recursos suportados | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT`, além de IDs de tipos personalizados definidos pelo usuário |
| Sinalizadores de memória | Cada entrada carrega sinalizadores de memória legados (MOVEABLE, PURE, PRELOAD, DISCARDABLE) herdados do carregamento de recursos do Windows 3.x; preservados no formato para compatibilidade |
| Recurso de manifesto | Um manifesto de aplicativo XML pode ser incorporado como tipo de recurso `RT_MANIFEST` (ID de tipo 24), usado pelo Windows para aplicar configurações de elevação de UAC e estilos visuais |
| Tipo MIME | `application/octet-stream` (nenhum tipo MIME específico do formato está registrado para `.res`) |
| Formato de entrada de origem | Compilado a partir de scripts de texto `.rc` que referenciam ou incorporam arquivos `.ico`, `.cur`, `.bmp` e outros arquivos de ativos via diretivas de recurso |
| Lançado | 1980s-1990s (Windows SDK / Resource Compiler) |
| Especificação | learn.microsoft.com |
Conversões de RES
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos RES.