¿Qué es el formato de archivo RES?
La extensión de archivo .res es utilizada por el formato de archivo de recursos compilados de Windows, producido durante el proceso de compilación de programas Win32 por el Compilador de Recursos (rc.exe). Los archivos .res almacenan recursos binarios utilizados por un programa determinado, incluyendo cursores, fuentes, imágenes de mapa de bits, iconos, sonidos, definiciones de diálogos, tablas de cadenas, menús e información de versión.
Un script de origen .rc es la entrada legible por humanos; compilarlo con rc.exe genera un paquete binario .res, que el enlazador (link.exe) luego fusiona en un ejecutable .exe o una biblioteca .dll terminados.
Un archivo .res de Win32, a diferencia de los archivos Win16 más antiguos, admite Unicode: los identificadores de tipo y nombre de recurso pueden codificarse como cadenas Unicode. El formato binario comienza con una entrada de recurso nula (vacía) obligatoria que ocupa 32 bytes en el desplazamiento 0, que actúa como la firma de archivo práctica y no existía en la variante de 16 bits.
Los tipos de recursos comunes incrustados en un archivo .res incluyen:
RT_ICON/RT_CURSOR: iconos de aplicación y cursores del ratónRT_BITMAP: imágenes BMP incrustadasRT_DIALOG,RT_MENU,RT_STRING: definiciones de interfaz de usuario y tablas de cadenasRT_VERSION: metadatos de versión del archivo que se muestran en las propiedades del Explorador de WindowsRT_MANIFEST: manifiesto de ensamblado en paralelo para la configuración de UAC y estilos visuales
Cada entrada de recurso lleva un identificador de idioma (LANGID), lo que permite que el mismo archivo .res contenga variantes localizadas de cadenas y diálogos para múltiples configuraciones regionales.
Seguridad y protección
RIESGO: LOWUn .res compilado son datos binarios pasivos (iconos, diálogos, cadenas); no es ejecutable por sí solo, por lo que abrir uno en un editor de recursos es seguro. La precaución en el mundo real se debe a que la extensión .res se reutiliza: un archivo llamado .res podría ser en su lugar un archivo de activos de un juego/aplicación o un archivo de resultados de simulación. Además, las herramientas de «edición de recursos» a veces se usan para manipular o crackear programas existentes; editar recursos dentro del .exe/.dll firmado de otra persona rompe su firma digital y puede violar su licencia.
Detalles del formato
en pocas palabras- Embarcadero/Borland Delphi & C++Builder .res - Los proyectos de Delphi/C++Builder incluyen un .res compilado (iconos, información de versión) enlazado en el binario; el mismo formato de recursos de Windows.
- Archivo de datos de «recursos» genérico (juegos/aplicaciones) - Algunos juegos y aplicaciones nombran un archivo de datos/activos empaquetados como «.res»; es específico de la aplicación, no el formato de recursos de Windows.
- ANSYS / archivo de resultados de ingeniería - Algunas herramientas de simulación (p. ej., ANSYS) escriben resultados de análisis en un archivo .res, no relacionado con los recursos de Windows.
Programas que abren archivos RES
Detalles técnicos
especificación profunda| Tipo de formato | Paquete de recursos binarios compilados; un artefacto de compilación intermedio, no un ejecutable independiente |
| Producido por | `rc.exe` (Windows Resource Compiler), incluido en el Windows SDK y las herramientas de compilación de Visual Studio |
| Consumido por | Enlazador `link.exe`, que incrusta los datos del recurso en el `.exe` o `.dll` final en el momento del enlace |
| Estructura del archivo | Secuencia de entradas de recursos de longitud variable; cada entrada tiene un encabezado de diseño fijo (tamaño de datos, tamaño de encabezado, tipo, nombre, versión de datos, indicadores de memoria, ID de idioma, versión, características) seguido de los datos de recursos sin procesar |
| Firma de archivo | Entrada de recurso nula de 32 bytes en el desplazamiento 0: tamaño de datos `0x00000000`, tamaño de encabezado `0x00000020`, marcadores de tipo/nombre `0xFFFF 0x0000 0xFFFF 0x0000` |
| Orden de bytes | Little-endian; todos los enteros multibyte almacenados en orden de bytes Intel (LE) |
| Alineación | Los datos de cada entrada de recurso se rellenan hasta un límite de DWORD (4 bytes) dentro del archivo |
| Soporte Unicode | Los identificadores de tipo y nombre de recurso son compatibles con Unicode; los ID ordinales usan un prefijo de palabra `0xFFFF`, los ID de cadena son UTF-16LE en línea terminados en nulo |
| ID de idioma (LANGID) | Cada entrada de recurso almacena un LANGID de Windows, lo que permite múltiples variantes localizadas del mismo tipo/nombre de recurso dentro de un archivo |
| Win32 vs Win16 | El `.res` de 32 bits es incompatible binariamente con el `.res` de Win16 de 16 bits; Win16 carecía del centinela de encabezado nulo y utilizaba un diseño de registro diferente sin soporte Unicode |
| Tipos de recursos compatibles | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT`, además de IDs de tipos personalizados definidos por el usuario |
| Indicadores de memoria | Cada entrada lleva indicadores de memoria heredados (MOVEABLE, PURE, PRELOAD, DISCARDABLE) heredados de la carga de recursos de Windows 3.x; preservados en el formato por compatibilidad |
| Recurso de manifiesto | Un manifiesto de aplicación XML puede incrustarse como tipo de recurso `RT_MANIFEST` (ID de tipo 24), utilizado por Windows para aplicar configuraciones de elevación de UAC y estilos visuales |
| Tipo MIME | `application/octet-stream` (no hay un tipo MIME específico registrado para `.res`) |
| Formato de entrada de origen | Compilado a partir de scripts de texto `.rc` que referencian o incrustan archivos `.ico`, `.cur`, `.bmp` y otros activos a través de directivas de recursos |
| Lanzado | 1980s-1990s (Windows SDK / Resource Compiler) |
| Especificación | learn.microsoft.com |
Conversiones de RES
Preguntas y respuestas de la comunidad
preguntado por usuariosAún no hay preguntas; sea el primero en preguntar sobre los archivos RES.