Hvad er RES-filformatet?
Filtypenavnet .res bruges af formatet Windows compiled resource file, der produceres under byggeprocessen af et Win32-program af Resource Compiler (rc.exe). .res-filer gemmer binære ressourcer, der bruges af et givet program, herunder markører, skrifttyper, bitmap-billeder, ikoner, lyde, dialogdefinitioner, strengtabeller, menuer og versionsoplysninger.
Et .rc-kildescript er det menneskeligt læsbare input; kompilering af dette med rc.exe giver en binær .res-pakke, som linkeren (link.exe) derefter fletter ind i en færdig .exe-eksekverbar fil eller et .dll-bibliotek.
En Win32 .res-fil understøtter, i modsætning til ældre Win16-filer, Unicode - ressourcetype- og navneidentifikatorer kan kodes som Unicode-strenge. Det binære format begynder med en obligatorisk null (tom) ressourcepost, der optager 32 bytes ved offset 0, hvilket fungerer som den praktiske filsignatur og ikke eksisterede i 16-bit-varianten.
Almindelige ressourcetyper indlejret i en .res-fil inkluderer:
RT_ICON/RT_CURSOR- applikationsikoner og musemarkørerRT_BITMAP- indlejrede BMP-billederRT_DIALOG,RT_MENU,RT_STRING- brugerfladedefinitioner og strengtabellerRT_VERSION- metadata for filversion, der vises i Windows Stifinder-egenskaberRT_MANIFEST- side-by-side assembly-manifest til UAC- og visuelle stilindstillinger
Hver ressourcepost bærer en sprogidentifikator (LANGID), hvilket gør det muligt for den samme .res-fil at indeholde lokaliserede varianter af strenge og dialogbokse til flere sprogområder.
Sikkerhed og tryghed
RISIKO: LOWEn kompileret .res er passive binære data (ikoner, dialogbokse, strenge); den er ikke eksekverbar i sig selv, så det er sikkert at åbne en i en ressource-editor. Den reelle forsigtighed gælder genbrug af .res-filtypenavnet: en fil ved navn .res kan i stedet være et aktivarkiv til et spil/app eller en fil med simuleringsresultater. Desuden bruges «ressource-redigeringsværktøjer» nogle gange til at manipulere eller cracke eksisterende programmer - redigering af ressourcer i en andens signerede .exe/.dll bryder den digitale signatur og kan overtræde licensen.
Formatdetaljer
kort fortalt- Embarcadero/Borland Delphi & C++Builder .res - Delphi/C++Builder-projekter inkluderer en kompileret .res (ikoner, versionsinfo) linket ind i den binære fil - samme Windows-ressourceformat.
- Generisk «resources» datafil (spil/apps) - Nogle spil og applikationer navngiver et pakket aktiv-/dataarkiv «.res»; det er app-specifikt og ikke Windows-ressourceformatet.
- ANSYS / ingeniør-resultatfil - Nogle simuleringsværktøjer (f.eks. ANSYS) skriver analyseresultater til en .res-fil, som ikke er relateret til Windows-ressourcer.
Programmer der åbner RES-filer
Tekniske detaljer
dyb specifikation| Formattype | Kompileret binær ressourcepakke; en mellemliggende byggeartefakt, ikke en selvstændig eksekverbar fil |
| Produceret af | `rc.exe` (Windows Resource Compiler), inkluderet i Windows SDK og Visual Studio build-værktøjer |
| Forbruges af | `link.exe` linker, som indlejrer ressourcedataene i den endelige `.exe` eller `.dll` ved link-tid |
| Filstruktur | Sekvens af ressourceposter med variabel længde; hver post har en header med fast layout (datastørrelse, headerstørrelse, type, navn, dataversion, hukommelsesflag, sprog-ID, version, karakteristika) efterfulgt af rå ressourcedata |
| Filsignatur | 32-byte null-ressourcepost ved offset 0: datastørrelse `0x00000000`, headerstørrelse `0x00000020`, type/navne-markører `0xFFFF 0x0000 0xFFFF 0x0000` |
| Byte-orden | Little-endian; alle multi-byte heltal gemmes i Intel (LE) byte-orden |
| Justering | Hver ressourceposts data er udfyldt til en DWORD (4-byte) grænse i filen |
| Unicode-understøttelse | Ressourcetype- og navneidentifikatorer er Unicode-kompatible; ordinale ID'er bruger et `0xFFFF` præfiks-ord, streng-ID'er er inline UTF-16LE null-terminerede |
| Sprog-ID (LANGID) | Hver ressourcepost gemmer et Windows LANGID, hvilket tillader flere lokaliserede varianter af den samme ressourcetype/-navn i én fil |
| Win32 vs Win16 | 32-bit `.res` er binært inkompatibel med 16-bit Win16 `.res`; Win16 manglede null-header-sentinellen og brugte et andet post-layout uden Unicode-understøttelse |
| Understøttede ressourcetyper | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT`, plus brugerdefinerede bruger-ID'er |
| Hukommelsesflag | Hver post bærer ældre hukommelsesflag (MOVEABLE, PURE, PRELOAD, DISCARDABLE) nedarvet fra Windows 3.x ressourceindlæsning; bevaret i formatet for kompatibilitet |
| Manifest-ressource | Et XML-applikationsmanifest kan indlejres som ressourcetype `RT_MANIFEST` (type-ID 24), brugt af Windows til at anvende UAC-elevationsindstillinger og visuelle stilarter |
| MIME-type | `application/octet-stream` (ingen formatspecifik MIME-type er registreret for `.res`) |
| Kilde-inputformat | Kompileret fra `.rc` tekstscripts, der refererer til eller indlejrer `.ico`, `.cur`, `.bmp` og andre aktivfiler via ressource-direktiver |
| Udgivet | 1980s-1990s (Windows SDK / Resource Compiler) |
| Specifikation | learn.microsoft.com |
RES-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om RES-filer.