Qu'est-ce que le format de fichier RES ?
L'extension de fichier .res est utilisée par le format de fichier de ressources compilées Windows, produit pendant le processus de construction d'un programme Win32 par le compilateur de ressources (rc.exe). Les fichiers .res stockent des ressources binaires utilisées par un programme donné, notamment des curseurs, des polices, des images bitmap, des icônes, des sons, des définitions de boîtes de dialogue, des tables de chaînes, des menus et des informations de version.
Un script source .rc est l'entrée lisible par l'homme ; sa compilation avec rc.exe produit un paquet binaire .res, que l'éditeur de liens (link.exe) fusionne ensuite dans un exécutable .exe ou une bibliothèque .dll finalisé.
Un fichier .res Win32, contrairement aux anciens fichiers Win16, prend en charge l'Unicode - les identifiants de type et de nom de ressource peuvent être encodés sous forme de chaînes Unicode. Le format binaire commence par une entrée de ressource nulle (vide) obligatoire occupant 32 octets à l'offset 0, qui sert de signature de fichier pratique et n'existait pas dans la variante 16 bits.
Les types de ressources courants intégrés dans un fichier .res incluent :
RT_ICON/RT_CURSOR- icônes d'application et curseurs de sourisRT_BITMAP- images BMP intégréesRT_DIALOG,RT_MENU,RT_STRING- définitions d'interface utilisateur et tables de chaînesRT_VERSION- métadonnées de version du fichier affichées dans les propriétés de l'Explorateur WindowsRT_MANIFEST- manifeste d'assemblage côte à côte pour les paramètres d'UAC et de style visuel
Chaque entrée de ressource porte un identifiant de langue (LANGID), permettant au même fichier .res de contenir des variantes localisées de chaînes et de boîtes de dialogue pour plusieurs régions.
Sécurité et sûreté
RISQUE : LOWUn .res compilé contient des données binaires passives (icônes, boîtes de dialogue, chaînes) ; il n'est pas exécutable en soi, donc l'ouvrir dans un éditeur de ressources est sûr. La mise en garde réelle concerne la réutilisation de l'extension .res : un fichier nommé .res pourrait être une archive d'actifs de jeu ou un fichier de résultats de simulation. De plus, les outils d'édition de ressources sont parfois utilisés pour altérer ou pirater des programmes existants - modifier les ressources à l'intérieur du .exe/.dll signé de quelqu'un d'autre brise sa signature numérique et peut violer sa licence.
Détails du format
en bref- Embarcadero/Borland Delphi & C++Builder .res - Les projets Delphi/C++Builder incluent un .res compilé (icônes, infos de version) lié dans le binaire - même format de ressource Windows.
- Fichier de données 'resources' générique (jeux/apps) - Certains jeux et applications nomment une archive d'actifs/données « .res » ; c'est spécifique à l'application, pas le format de ressource Windows.
- ANSYS / fichier de résultats d'ingénierie - Certains outils de simulation (ex. ANSYS) écrivent des résultats d'analyse dans un fichier .res, sans rapport avec les ressources Windows.
Programmes qui ouvrent les fichiers RES
Détails techniques
spécifications approfondies| Type de format | Paquet de ressources binaires compilées ; un artefact de construction intermédiaire, pas un exécutable autonome |
| Produit par | `rc.exe` (Windows Resource Compiler), inclus dans le Windows SDK et les outils de construction Visual Studio |
| Consommé par | L'éditeur de liens `link.exe`, qui intègre les données de ressources dans le `.exe` ou `.dll` final au moment de l'édition de liens |
| Structure du fichier | Séquence d'entrées de ressources de longueur variable ; chaque entrée possède un en-tête à disposition fixe (taille des données, taille de l'en-tête, type, nom, version des données, drapeaux mémoire, ID de langue, version, caractéristiques) suivie des données de ressources brutes |
| Signature du fichier | Entrée de ressource nulle de 32 octets à l'offset 0 : taille des données `0x00000000`, taille de l'en-tête `0x00000020`, marqueurs de type/nom `0xFFFF 0x0000 0xFFFF 0x0000` |
| Ordre des octets | Little-endian ; tous les entiers multi-octets sont stockés dans l'ordre des octets Intel (LE) |
| Alignement | Les données de chaque entrée de ressource sont complétées jusqu'à une limite DWORD (4 octets) à l'intérieur du fichier |
| Support Unicode | Les identifiants de type et de nom de ressource sont compatibles Unicode ; les ID ordinaux utilisent un mot de préfixe `0xFFFF`, les ID de chaîne sont des chaînes UTF-16LE terminées par un caractère nul |
| ID de langue (LANGID) | Chaque entrée de ressource stocke un LANGID Windows, permettant plusieurs variantes localisées du même type/nom de ressource au sein d'un seul fichier |
| Win32 vs Win16 | Le `.res` 32 bits est incompatible binaire avec le `.res` Win16 16 bits ; Win16 n'avait pas la sentinelle d'en-tête nul et utilisait une disposition d'enregistrement différente sans support Unicode |
| Types de ressources supportés | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT`, plus des ID de types personnalisés définis par l'utilisateur |
| Drapeaux mémoire | Chaque entrée porte des drapeaux mémoire hérités (MOVEABLE, PURE, PRELOAD, DISCARDABLE) provenant du chargement des ressources Windows 3.x ; préservés dans le format pour la compatibilité |
| Ressource manifeste | Un manifeste d'application XML peut être intégré en tant que type de ressource `RT_MANIFEST` (ID de type 24), utilisé par Windows pour appliquer les paramètres d'élévation UAC et les styles visuels |
| Type MIME | `application/octet-stream` (aucun type MIME spécifique au format n'est enregistré pour `.res`) |
| Format d'entrée source | Compilé à partir de scripts texte `.rc` qui référencent ou intègrent des fichiers `.ico`, `.cur`, `.bmp` et d'autres fichiers d'actifs via des directives de ressources |
| Publié | 1980s-1990s (Windows SDK / Resource Compiler) |
| Spécification | learn.microsoft.com |
Conversions RES
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers RES.