Vad är filformatet RES?
Filändelsen .res används av formatet Windows kompilerad resursfil, som skapas under byggprocessen av Win32-program av Resource Compiler (rc.exe). .res-filer lagrar binära resurser som används av ett givet program, inklusive markörer, typsnitt, bitmappsbilder, ikoner, ljud, dialogdefinitioner, strängtabeller, menyer och versionsinformation.
Ett .rc-källskript är den läsbara indatan; genom att kompilera det med rc.exe skapas ett binärt .res-paket, som länkaren (link.exe) sedan sammanfogar till en färdig .exe-körbar fil eller ett .dll-bibliotek.
En Win32 .res-fil stöder, till skillnad från äldre Win16-filer, Unicode - resurstyp och namnidentifierare kan kodas som Unicode-strängar. Det binära formatet börjar med en obligatorisk null-resurspost (tom) som upptar 32 byte vid offset 0, vilket fungerar som den praktiska filsignaturen och inte existerade i 16-bitarsvarianten.
Vanliga resurstyper inbäddade i en .res-fil inkluderar:
RT_ICON/RT_CURSOR- applikationsikoner och musmarkörerRT_BITMAP- inbäddade BMP-bilderRT_DIALOG,RT_MENU,RT_STRING- UI-definitioner och strängtabellerRT_VERSION- metadata för filversion som visas i Windows Explorer-egenskaperRT_MANIFEST- manifest för sida-vid-sida-montering för UAC och inställningar för visuella stilar
Varje resurspost bär en språkidentifierare (LANGID), vilket gör det möjligt för samma .res-fil att innehålla lokaliserade varianter av strängar och dialogrutor för flera regioner.
Säkerhet & trygghet
RISK: LOWEn kompilerad .res är passiv binärdata (ikoner, dialogrutor, strängar); den är inte körbar i sig själv, så det är säkert att öppna en i en resursredigerare. Den verkliga varningen gäller att .res-ändelsen återanvänds: en fil som heter .res kan istället vara ett tillgångsarkiv för spel/appar eller en fil med simuleringsresultat. Dessutom används verktyg för «resursredigering» ibland för att manipulera eller cracka befintliga program - att redigera resurser inuti någon annans signerade .exe/.dll bryter dess digitala signatur och kan bryta mot dess licens.
Formatdetaljer
i ett nötskal- Embarcadero/Borland Delphi & C++Builder .res - Delphi/C++Builder-projekt inkluderar en kompilerad .res (ikoner, versionsinfo) länkad in i binärfilen - samma Windows-resursformat.
- Generisk «resources»-datafil (spel/appar) - Vissa spel och applikationer döper ett packat tillgångs-/dataarkiv till «.res»; det är app-specifikt, inte Windows-resursformatet.
- ANSYS / ingenjörsresultatfil - Vissa simuleringsverktyg (t.ex. ANSYS) skriver analysresultat till en .res-fil, orelaterat till Windows-resurser.
Program som öppnar RES-filer
Tekniska detaljer
djup specifikation| Formattyp | Kompilerat binärt resurspaket; en mellanliggande byggartefakt, inte en fristående körbar fil |
| Producerad av | `rc.exe` (Windows Resource Compiler), som ingår i Windows SDK och Visual Studio-byggverktyg |
| Används av | `link.exe`-länkaren, som bäddar in resursdata i den slutliga `.exe`- eller `.dll`-filen vid länkning |
| Filstruktur | Sekvens av resursposter med variabel längd; varje post har ett huvud med fast layout (datastorlek, huvudstorlek, typ, namn, dataversion, minnesflaggor, språk-ID, version, egenskaper) följt av rå resursdata |
| Filsignatur | 32-byte null-resurspost vid offset 0: datastorlek `0x00000000`, huvudstorlek `0x00000020`, typ/namn-markörer `0xFFFF 0x0000 0xFFFF 0x0000` |
| Byteordning | Little-endian; alla heltal med flera byte lagras i Intel (LE) byteordning |
| Justering | Varje resursposts data är utfylld till en DWORD-gräns (4 byte) i filen |
| Unicode-stöd | Resurstyp och namnidentifierare är Unicode-kompatibla; ordinal-ID:n använder ett `0xFFFF`-prefixord, sträng-ID:n är inline UTF-16LE null-terminerade |
| Språk-ID (LANGID) | Varje resurspost lagrar ett Windows LANGID, vilket tillåter flera lokaliserade varianter av samma resurstyp/namn inom en fil |
| Win32 mot Win16 | 32-bitars `.res` är binärt inkompatibel med 16-bitars Win16 `.res`; Win16 saknade null-huvudet och använde en annan postlayout utan Unicode-stöd |
| Resurstyper som stöds | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT`, plus användardefinierade anpassade typ-ID:n |
| Minnesflaggor | Varje post bär på äldre minnesflaggor (MOVEABLE, PURE, PRELOAD, DISCARDABLE) ärvda från Windows 3.x-resursladdning; bevarade i formatet för kompatibilitet |
| Manifest-resurs | Ett XML-applikationsmanifest kan bäddas in som resurstyp `RT_MANIFEST` (typ-ID 24), som används av Windows för att tillämpa UAC-behörighetsinställningar och visuella stilar |
| MIME-typ | `application/octet-stream` (ingen formatspecifik MIME-typ är registrerad för `.res`) |
| Källformat | Kompilerad från `.rc`-textskript som refererar till eller bäddar in `.ico`, `.cur`, `.bmp` och andra tillgångsfiler via resursdirektiv |
| Släppt | 1980s-1990s (Windows SDK / Resource Compiler) |
| Specifikation | learn.microsoft.com |
RES-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om RES-filer.