Was ist das RES-Dateiformat?
Die Dateierweiterung .res wird vom kompilierten Windows-Ressourcendateiformat verwendet, das während des Win32-Programm-Build-Prozesses vom Ressourcen-Compiler (rc.exe) erzeugt wird. .res-Dateien speichern binäre Ressourcen, die von einem bestimmten Programm verwendet werden, einschließlich Cursor, Schriftarten, Bitmap-Bilder, Symbole, Sounds, Dialogdefinitionen, Zeichenkettentabellen, Menüs und Versionsinformationen.
Ein .rc-Quellskript ist die für Menschen lesbare Eingabe; durch das Kompilieren mit rc.exe entsteht ein binäres .res-Bündel, das der Linker (link.exe) dann in eine fertige .exe-Ausführungsdatei oder .dll-Bibliothek einbettet.
Eine Win32-.res-Datei unterstützt im Gegensatz zu älteren Win16-Dateien Unicode - Ressourcentyp- und Namensbezeichner können als Unicode-Zeichenketten kodiert werden. Das Binärformat beginnt mit einem obligatorischen Null-Ressourceneintrag (leere Ressource), der 32 Bytes bei Offset 0 belegt und als praktische Dateisignatur dient; dieser Eintrag existierte in der 16-Bit-Variante nicht.
Zu den gängigen Ressourcentypen, die in einer .res-Datei eingebettet sind, gehören:
RT_ICON/RT_CURSOR- Anwendungssymbole und MauszeigerRT_BITMAP- eingebettete BMP-BilderRT_DIALOG,RT_MENU,RT_STRING- UI-Definitionen und ZeichenkettentabellenRT_VERSION- Dateiversionmetadaten, die in den Windows Explorer-Eigenschaften angezeigt werdenRT_MANIFEST- Side-by-Side-Assembly-Manifest für UAC- und visuelle Stileinstellungen
Jeder Ressourceneintrag trägt eine Sprach-ID (LANGID), sodass dieselbe .res-Datei lokalisierte Varianten von Zeichenketten und Dialogen für mehrere Gebietsschemas enthalten kann.
Sicherheit
RISIKO: LOWEine kompilierte .res ist passive Binärdaten (Symbole, Dialoge, Zeichenketten); sie ist nicht eigenständig ausführbar, daher ist das Öffnen in einem Ressourceneditor sicher. Der reale Vorsichtsaspekt betrifft die mehrfache Verwendung der .res-Erweiterung: Eine Datei namens .res könnte stattdessen ein Spiel-/App-Asset-Archiv oder eine Simulationsergebnisdatei sein. Außerdem werden „Ressourcenbearbeitungs“-Tools manchmal verwendet, um bestehende Programme zu manipulieren oder zu cracken - das Bearbeiten von Ressourcen in der .exe/.dll eines Drittanbieters bricht dessen digitale Signatur und kann gegen dessen Lizenz verstoßen.
Formatdetails
kurz gefasst- Embarcadero/Borland Delphi & C++Builder .res - Delphi/C++Builder-Projekte enthalten eine kompilierte .res (Symbole, Versionsinformationen), die in die Binärdatei gelinkt wird - gleiches Windows-Ressourcenformat.
- Generische 'Ressourcen'-Datendatei (Spiele/Apps) - Einige Spiele und Anwendungen benennen ein gepacktes Asset-/Datenarchiv '.res'; dies ist anwendungsspezifisch und nicht das Windows-Ressourcenformat.
- ANSYS / Engineering-Ergebnisdatei - Einige Simulationstools (z. B. ANSYS) schreiben Analyseergebnisse in eine .res-Datei, was nichts mit Windows-Ressourcen zu tun hat.
Programme zum Öffnen von RES-Dateien
Technische Details
technische Spezifikation| Formattyp | Kompiliertes binäres Ressourcenbündel; ein intermediäres Build-Artefakt, keine eigenständige ausführbare Datei |
| Erzeugt von | `rc.exe` (Windows Ressourcen-Compiler), enthalten im Windows SDK und in den Visual Studio Build-Tools |
| Verwendet von | `link.exe`-Linker, der die Ressourcendaten zur Link-Zeit in die fertige `.exe` oder `.dll` einbettet |
| Dateistruktur | Sequenz variabler Länge von Ressourceneinträgen; jeder Eintrag hat einen Header mit festem Layout (Datengröße, Headergröße, Typ, Name, Datenversion, Speicherflags, Sprach-ID, Version, Eigenschaften), gefolgt von rohen Ressourcendaten |
| Dateisignatur | 32-Byte-Null-Ressourceneintrag bei Offset 0: Datengröße `0x00000000`, Headergröße `0x00000020`, Typ-/Namenmarkierungen `0xFFFF 0x0000 0xFFFF 0x0000` |
| Byte-Reihenfolge | Little-Endian; alle Multi-Byte-Integer in Intel-(LE-)Byte-Reihenfolge gespeichert |
| Ausrichtung | Die Daten jedes Ressourceneintrags werden innerhalb der Datei auf eine DWORD-(4-Byte-)Grenze aufgefüllt |
| Unicode-Unterstützung | Ressourcentyp- und Namensbezeichner sind Unicode-fähig; Ordinal-IDs verwenden ein `0xFFFF`-Präfixwort, Zeichenketten-IDs sind als Inline-UTF-16LE null-terminiert |
| Sprach-ID (LANGID) | Jeder Ressourceneintrag speichert eine Windows-LANGID, die mehrere lokalisierte Varianten desselben Ressourcentyp/-namens innerhalb einer Datei ermöglicht |
| Win32 vs. Win16 | 32-Bit-.res ist binär inkompatibel mit 16-Bit-Win16-.res; Win16 fehlte der Null-Header-Sentinel und verwendete ein anderes Datensatzlayout ohne Unicode-Unterstützung |
| Unterstützte Ressourcentypen | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT` sowie benutzerdefinierte Typ-IDs |
| Speicherflags | Jeder Eintrag trägt veraltete Speicherflags (MOVEABLE, PURE, PRELOAD, DISCARDABLE), die vom Windows 3.x Ressourcen-Lademechanismus geerbt wurden; aus Kompatibilitätsgründen im Format erhalten |
| Manifest-Ressource | Ein XML-Anwendungsmanifest kann als Ressourcentyp `RT_MANIFEST` (Typ-ID 24) eingebettet werden und wird von Windows verwendet, um UAC-Erhöhungseinstellungen und visuelle Stile anzuwenden |
| MIME-Typ | `application/octet-stream` (kein formatspezifischer MIME-Typ für `.res` registriert) |
| Quell-Eingabeformat | Wird aus `.rc`-Textskripten kompiliert, die `.ico`, `.cur`, `.bmp` und andere Asset-Dateien über Ressourcendirektiven referenzieren oder einbetten |
| Veröffentlicht | 1980s-1990s (Windows SDK / Resource Compiler) |
| Spezifikation | learn.microsoft.com |
RES-Konvertierungen
Community Q&A
von Nutzern gefragtNoch keine Fragen - stellen Sie die erste Frage zu RES-Dateien.