Compartir a través de


Formatos de archivo de recursos

En esta sección se describe el formato del archivo de recursos binarios que crea el compilador de recursos en función del contenido del archivo de definición de recursos. Este archivo normalmente tiene una extensión .res. El enlazador vuelve a formatear el archivo .res en un archivo de objeto de recurso y, a continuación, lo vincula al archivo ejecutable de una aplicación.

Un archivo de recursos binarios consta de una serie de entradas de recursos concatenadas. Cada entrada consta de un encabezado de recurso y los datos de ese recurso. Un encabezado de recurso es DWORDalineado en el archivo y consta de lo siguiente:

  • DWORD de que contiene el tamaño del encabezado de recurso
  • DWORD que contiene el tamaño de los datos de recursos
  • El tipo de recurso
  • El nombre del recurso
  • Información adicional sobre recursos

La estructura RESOURCEHEADER describe el formato de este encabezado. Los datos del recurso siguen el encabezado de recurso y son específicos de cada tipo de recurso. Algunos recursos también emplean una estructura de encabezado de grupo específica del recurso para proporcionar información sobre un grupo de recursos.

Recursos de tabla de aceleradores

Una tabla de aceleración es una entrada de recurso en un archivo de recursos. No tiene un encabezado de grupo. Una estructura ACCELTABLEENTRY describe cada entrada de la tabla de aceleradores. Se permiten varias tablas de aceleración.

Recursos de cursor e icono

El sistema controla cada icono y cursor como un único archivo. Sin embargo, estos se almacenan en archivos .res y en archivos ejecutables como un grupo de recursos de icono de RT_GROUP_ICON o un grupo de RT_GROUP_CURSOR de recursos de cursor. Los formatos de archivo de los recursos de icono y cursor son similares. En el archivo .res, un encabezado de grupo de recursos sigue todos los componentes de grupo de cursor o icono individuales.

El encabezado de grupo para los recursos de icono y cursor consta de una estructura de NEWHEADER más una o varias estructuras RESDIR. Hay una estructura RESDIR para cada icono o cursor. El encabezado de grupo contiene la información que una aplicación necesita para seleccionar el icono o el cursor correctos que se van a mostrar. Tanto el encabezado de grupo como los datos que se repiten para cada icono o cursor del grupo tienen una longitud fija. Esto permite que la aplicación acceda aleatoriamente a la información.

El formato de cada icono de RT_ICON o RT_CURSOR componente de recursos de cursor se parece mucho al formato del archivo .ico/.cur. Cada imagen se almacena en una estructuraBITMAPINFOseguida de los bits de mapa de bits independientes del dispositivo de color (DIB) del XOR del icono máscara. Los bits DIB monocromáticos de la AND máscara siguen los bits DIB de color. La diferencia significativa entre los cursores y los iconos es que los cursores tienen una estructura LOCALHEADER con una zona activa insertada antes de los datos del mapa de bits, mientras que los iconos no.

Dado que Windows Vista RT_ICON icono o recurso de cursor de RT_CURSOR puede contener datos de imagen comprimidas por PNG.

Recursos del cuadro de diálogo

Un cuadro de diálogo también es una entrada de recurso en el archivo de recursos. Consta de una estructura de encabezadoDLGTEMPLATE más una estructura de encabezado de cuadro de diálogo DLGITEMTEMPLATE para cada control del cuadro de diálogo. LasDLGTEMPLATEEX y las estructuras deDLGITEMTEMPLATEEXdescriben el formato de los recursos de cuadro de diálogo extendidos.

Recursos de fuente

Las fuentes se almacenan en el archivo de recursos como un grupo de recursos. Las fuentes individuales componen un grupo de fuentes. Instrucción FONT instrucción de definición de recursos en . El archivo RC define cada fuente. Cada fuente individual del recurso consta del contenido completo del archivo .fnt relacionado. Una estructura de FONTGROUPHDR sigue todos los componentes de fuente individuales del archivo .res.

Los recursos de fuente no se agregan a los recursos de una aplicación específica. En su lugar, normalmente se agregan a los archivos ejecutables que tienen una extensión .fon. Estos archivos suelen ser archivos DLL de solo recursos en lugar de aplicaciones.

Una de recursos de menú consta de una estructura de MENUHEADER seguida de una o varias NORMALMENUITEM o estructuras POPUPMENUITEM, una para cada elemento de menú de la plantilla de menú. Las estructuras MENUEX_TEMPLATE_HEADER y MENUEX_TEMPLATE_ITEM describen el formato de los recursos de menú extendidos.

Recursos de tabla de mensajes

Una tabla de mensajes es un recurso que contiene texto con formato para mostrarse como un mensaje de error o en un cuadro de mensaje. La estructura principal de un recurso de tabla de mensajes es la estructura MESSAGE_RESOURCE_DATA.

Recursos de versión

La estructura principal de un recurso de versión es la estructura VS_FIXEDFILEINFO. Las estructuras adicionales incluyen la estructura VarFileInfo para almacenar datos de información del idioma y stringFileInfo para obtener información de cadena definida por el usuario. Todas las cadenas de un recurso de versión están en formato Unicode. Cada bloque de información se alinea en un límite de DWORD.