Hva er RES-filformatet?
Filsuffixet .res brukes av formatet Windows compiled resource file, produsert under byggeprosessen av et Win32-program av Resource Compiler (rc.exe). .res-filer lagrer binære ressurser som brukes av et gitt program, inkludert markører, fonter, punktgrafikkbilder, ikoner, lyder, dialogdefinisjoner, strengtabeller, menyer og versjonsinformasjon.
Et .rc-kildeskript er det menneskelesbare inndataformatet; kompilering av dette med rc.exe gir en binær .res-pakke, som lenkeren (link.exe) deretter fletter inn i en ferdig .exe-eksekverbar fil eller et .dll-bibliotek.
En Win32 .res-fil støtter, i motsetning til eldre Win16-filer, Unicode - ressurstype- og navneidentifikatorer kan kodes som Unicode-strenger. Det binære formatet starter med en obligatorisk null-ressursoppføring (tom) som opptar 32 byte ved posisjon 0, noe som fungerer som den praktiske filsignaturen og ikke eksisterte i 16-bit-varianten.
Vanlige ressurstyper innebygd i en .res-fil inkluderer:
RT_ICON/RT_CURSOR- applikasjonsikoner og musemarkørerRT_BITMAP- innebygde BMP-bilderRT_DIALOG,RT_MENU,RT_STRING- brukergrensesnitt-definisjoner og strengtabellerRT_VERSION- metadata for filversjon som vises i egenskapene i Windows UtforskerRT_MANIFEST- manifest for side-ved-side-montering for UAC og visuelle stilinnstillinger
Hver ressursoppføring har en språkidentifikator (LANGID), noe som gjør det mulig for samme .res-fil å inneholde lokaliserte varianter av strenger og dialoger for flere regioner.
Sikkerhet og trygghet
RISIKO: LOWEn kompilert .res er passive binære data (ikoner, dialoger, strenger); den er ikke eksekverbar i seg selv, så det er trygt å åpne en i et ressursredigeringsprogram. Den reelle advarselen er at .res-filendelsen gjenbrukes: en fil med navnet .res kan i stedet være et ressursarkiv for et spill eller en simuleringsresultatfil. Verktøy for «ressursredigering» brukes også noen ganger til å manipulere eller knekke eksisterende programmer - redigering av ressurser i andres signerte .exe/.dll bryter den digitale signaturen og kan være i strid med lisensen.
Formatdetaljer
i et nøtteskall- Embarcadero/Borland Delphi & C++Builder .res - Delphi/C++Builder-prosjekter inkluderer en kompilert .res (ikoner, versjonsinfo) lenket inn i binærfilen - samme Windows-ressursformat.
- Generisk «resources»-datafil (spill/apper) - Noen spill og applikasjoner kaller et pakket ressurs-/dataarkiv «.res»; det er app-spesifikt, ikke Windows-ressursformatet.
- ANSYS / ingeniørresultatfil - Noen simuleringsverktøy (f.eks. ANSYS) skriver analyseresultater til en .res-fil, urelatert til Windows-ressurser.
Programmer som åpner RES-filer
Tekniske detaljer
dyp spesifikasjon| Format-type | Kompilert binær ressurspakke; et mellomprodukt i byggeprosessen, ikke en frittstående eksekverbar fil |
| Produsert av | `rc.exe` (Windows Resource Compiler), inkludert i Windows SDK og Visual Studio-byggverktøy |
| Brukt av | `link.exe`-lenker, som bygger ressursdataene inn i den endelige `.exe`- eller `.dll`-filen ved lenking |
| Filstruktur | Sekvens av ressursoppføringer med variabel lengde; hver oppføring har et hode med fast layout (datastørrelse, hodestørrelse, type, navn, dataversjon, minneflagg, språk-ID, versjon, egenskaper) etterfulgt av rå ressursdata |
| Filsignatur | 32-byte null-ressursoppføring ved posisjon 0: datastørrelse `0x00000000`, hodestørrelse `0x00000020`, type/navn-markører `0xFFFF 0x0000 0xFFFF 0x0000` |
| Byterekkefølge | Little-endian; alle heltall over flere byte lagres i Intel (LE) byterekkefølge |
| Justering | Hver ressursoppførings data er utfylt til en DWORD (4-byte) grense i filen |
| Unicode-støtte | Ressurstype- og navneidentifikatorer støtter Unicode; ordinale ID-er bruker et `0xFFFF` prefiks-ord, streng-ID-er er innebygd UTF-16LE null-terminert |
| Språk-ID (LANGID) | Hver ressursoppføring lagrer en Windows LANGID, noe som tillater flere lokaliserte varianter av samme ressurstype/navn i én fil |
| Win32 mot Win16 | 32-bit `.res` er binært inkompatibel med 16-bit Win16 `.res`; Win16 manglet null-hode-markøren og brukte et annet postoppsett uten Unicode-støtte |
| Støttede ressurstyper | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT`, pluss brukerdefinerte egendefinerte type-ID-er |
| Minneflagg | Hver oppføring bærer eldre minneflagg (MOVEABLE, PURE, PRELOAD, DISCARDABLE) arvet fra Windows 3.x-ressurslasting; bevart i formatet for kompatibilitet |
| Manifest-ressurs | Et XML-applikasjonsmanifest kan bygges inn som ressurstype `RT_MANIFEST` (type-ID 24), brukt av Windows for å bruke UAC-innstillinger og visuelle stiler |
| MIME-type | `application/octet-stream` (ingen formatspesifikk MIME-type er registrert for `.res`) |
| Kildeformat | Kompilert fra `.rc`-tekstskript som refererer til eller bygger inn `.ico`, `.cur`, `.bmp` og andre ressursfiler via ressursdirektiver |
| Utgitt | 1980s-1990s (Windows SDK / Resource Compiler) |
| Spesifikasjon | learn.microsoft.com |
RES-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om RES-filer.