Che cos'è il formato di file RES?
L'estensione file .res è utilizzata dal formato dei file di risorse compilati di Windows, prodotti durante il processo di compilazione dei programmi Win32 dal Resource Compiler (rc.exe). I file .res memorizzano risorse binarie utilizzate da un determinato programma, inclusi cursori, font, immagini bitmap, icone, suoni, definizioni di finestre di dialogo, tabelle di stringhe, menu e informazioni sulla versione.
Uno script sorgente .rc è l'input leggibile dall'uomo; compilandolo con rc.exe si ottiene un pacchetto binario .res, che il linker (link.exe) unisce poi in un eseguibile .exe o in una libreria .dll finiti.
Un file .res Win32, a differenza dei vecchi file Win16, supporta Unicode - gli identificatori del tipo di risorsa e del nome possono essere codificati come stringhe Unicode. Il formato binario inizia con una voce di risorsa nulla (vuota) obbligatoria che occupa 32 byte all'offset 0, che funge da firma pratica del file e non esisteva nella variante a 16 bit.
I tipi di risorse comuni incorporati in un file .res includono:
RT_ICON/RT_CURSOR- icone dell'applicazione e cursori del mouseRT_BITMAP- immagini BMP incorporateRT_DIALOG,RT_MENU,RT_STRING- definizioni dell'interfaccia utente e tabelle di stringheRT_VERSION- metadati della versione del file visualizzati nelle proprietà di Esplora file di WindowsRT_MANIFEST- manifest dell'assembly side-by-side per le impostazioni UAC e degli stili visuali
Ogni voce di risorsa contiene un identificatore di lingua (LANGID), consentendo allo stesso file .res di contenere varianti localizzate di stringhe e finestre di dialogo per più aree geografiche.
Sicurezza e incolumità
RISCHIO: LOWUn .res compilato è un insieme di dati binari passivi (icone, finestre di dialogo, stringhe); non è eseguibile da solo, quindi aprirne uno in un editor di risorse è sicuro. La cautela nel mondo reale riguarda il riutilizzo dell'estensione .res: un file chiamato .res potrebbe invece essere un archivio di asset di un gioco/app o un file di risultati di simulazione. Inoltre, gli strumenti di «modifica delle risorse» vengono talvolta utilizzati per manomettere o crackare programmi esistenti - modificare le risorse all'interno di un .exe/.dll firmato da terzi rompe la sua firma digitale e può violarne la licenza.
Dettagli del formato
in sintesi- Embarcadero/Borland Delphi & C++Builder .res - I progetti Delphi/C++Builder includono un .res compilato (icone, info versione) collegato nel binario - stesso formato di risorse Windows.
- File dati 'resources' generico (giochi/app) - Alcuni giochi e applicazioni chiamano un archivio di asset/dati pacchettizzati «.res»; è specifico dell'app, non è il formato di risorse di Windows.
- ANSYS / file di risultati ingegneristici - Alcuni strumenti di simulazione (es. ANSYS) scrivono i risultati dell'analisi in un file .res, non correlato alle risorse di Windows.
Programmi che aprono file RES
Dettagli tecnici
specifiche approfondite| Tipo di formato | Pacchetto di risorse binarie compilate; un artefatto di build intermedio, non un eseguibile autonomo |
| Prodotto da | `rc.exe` (Windows Resource Compiler), incluso nel Windows SDK e negli strumenti di compilazione di Visual Studio |
| Consumato da | Linker `link.exe`, che incorpora i dati delle risorse nel `.exe` o `.dll` finale al momento del collegamento |
| Struttura del file | Sequenza di voci di risorse a lunghezza variabile; ogni voce ha un'intestazione a layout fisso (dimensione dati, dimensione intestazione, tipo, nome, versione dati, flag di memoria, ID lingua, versione, caratteristiche) seguita dai dati grezzi della risorsa |
| Firma del file | Voce di risorsa nulla di 32 byte all'offset 0: dimensione dati `0x00000000`, dimensione intestazione `0x00000020`, marcatori tipo/nome `0xFFFF 0x0000 0xFFFF 0x0000` |
| Ordine dei byte | Little-endian; tutti gli interi multi-byte memorizzati nell'ordine dei byte Intel (LE) |
| Allineamento | I dati di ogni voce di risorsa sono riempiti fino a un limite di DWORD (4 byte) all'interno del file |
| Supporto Unicode | Gli identificatori del tipo di risorsa e del nome supportano Unicode; gli ID ordinali usano un prefisso `0xFFFF`, gli ID stringa sono UTF-16LE inline terminati da null |
| ID Lingua (LANGID) | Ogni voce di risorsa memorizza un LANGID di Windows, consentendo più varianti localizzate dello stesso tipo/nome di risorsa all'interno di un unico file |
| Win32 vs Win16 | Il `.res` a 32 bit è binariamente incompatibile con il `.res` Win16 a 16 bit; Win16 mancava della sentinella dell'intestazione nulla e utilizzava un layout di record diverso senza supporto Unicode |
| Tipi di risorse supportati | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT`, oltre a ID di tipi personalizzati definiti dall'utente |
| Flag di memoria | Ogni voce contiene flag di memoria legacy (MOVEABLE, PURE, PRELOAD, DISCARDABLE) ereditati dal caricamento delle risorse di Windows 3.x; preservati nel formato per compatibilità |
| Risorsa Manifest | Un manifest dell'applicazione XML può essere incorporato come tipo di risorsa `RT_MANIFEST` (ID tipo 24), utilizzato da Windows per applicare le impostazioni di elevazione UAC e gli stili visuali |
| Tipo MIME | `application/octet-stream` (nessun tipo MIME specifico per il formato è registrato per `.res`) |
| Formato di input sorgente | Compilato da script di testo `.rc` che fanno riferimento o incorporano file `.ico`, `.cur`, `.bmp` e altri asset tramite direttive di risorsa |
| Rilasciato | 1980s-1990s (Windows SDK / Resource Compiler) |
| Specifica | learn.microsoft.com |
Conversioni RES
Domande e risposte della community
chiesto dagli utentiAncora nessuna domanda - sii il primo a chiedere informazioni sui file RES.