What is the RES file format?
The .res file extension is used by the Windows compiled resource file format, produced during the Win32 program build process by the Resource Compiler (rc.exe). .res files store binary resources used by a given program, including cursors, fonts, bitmap images, icons, sounds, dialog definitions, string tables, menus, and version information.
A .rc source script is the human-readable input; compiling it with rc.exe yields a .res binary bundle, which the linker (link.exe) then merges into a finished .exe executable or .dll library.
A Win32 .res file, in contrast to older Win16 files, supports Unicode - resource type and name identifiers can be encoded as Unicode strings. The binary format begins with a mandatory null (empty) resource entry occupying 32 bytes at offset 0, which acts as the practical file signature and did not exist in the 16-bit variant.
Common resource types embedded in a .res file include:
RT_ICON/RT_CURSOR- application icons and mouse cursorsRT_BITMAP- embedded BMP imagesRT_DIALOG,RT_MENU,RT_STRING- UI definitions and string tablesRT_VERSION- file version metadata displayed in Windows Explorer propertiesRT_MANIFEST- side-by-side assembly manifest for UAC and visual style settings
Each resource entry carries a language identifier (LANGID), enabling the same .res file to hold localized variants of strings and dialogs for multiple locales.
Security & safety
RISK: LOWA compiled .res is passive binary data (icons, dialogs, strings); it is not executable on its own, so opening one in a resource editor is safe. The real-world caution is about the .res extension being reused: a file named .res might instead be a game/app asset archive or a simulation results file. Also, "resource editing" tools are sometimes used to tamper with or crack existing programs - editing resources inside someone else's signed .exe/.dll breaks its digital signature and may violate its license.
Format details
in a nutshell- Embarcadero/Borland Delphi & C++Builder .res - Delphi/C++Builder projects include a compiled .res (icons, version info) linked into the binary - same Windows resource format.
- Generic 'resources' data file (games/apps) - Some games and applications name a packed asset/data archive '.res'; it is app-specific, not the Windows resource format.
- ANSYS / engineering results file - Some simulation tools (e.g. ANSYS) write analysis results to a .res file, unrelated to Windows resources.
Programs that open RES files
Technical details
deep spec| Format type | Compiled binary resource bundle; an intermediate build artifact, not a standalone executable |
| Produced by | `rc.exe` (Windows Resource Compiler), included in the Windows SDK and Visual Studio build tools |
| Consumed by | `link.exe` linker, which embeds the resource data into the final `.exe` or `.dll` at link time |
| File structure | Sequence of variable-length resource entries; each entry has a fixed-layout header (data size, header size, type, name, data version, memory flags, language ID, version, characteristics) followed by raw resource data |
| File signature | 32-byte null resource entry at offset 0: data size `0x00000000`, header size `0x00000020`, type/name markers `0xFFFF 0x0000 0xFFFF 0x0000` |
| Byte order | Little-endian; all multi-byte integers stored in Intel (LE) byte order |
| Alignment | Each resource entry's data is padded to a DWORD (4-byte) boundary within the file |
| Unicode support | Resource type and name identifiers are Unicode-capable; ordinal IDs use a `0xFFFF` prefix word, string IDs are inline UTF-16LE null-terminated |
| Language ID (LANGID) | Each resource entry stores a Windows LANGID, allowing multiple localized variants of the same resource type/name within one file |
| Win32 vs Win16 | 32-bit `.res` is binary-incompatible with 16-bit Win16 `.res`; Win16 lacked the null-header sentinel and used a different record layout without Unicode support |
| Supported resource types | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT`, plus user-defined custom type IDs |
| Memory flags | Each entry carries legacy memory flags (MOVEABLE, PURE, PRELOAD, DISCARDABLE) inherited from Windows 3.x resource loading; preserved in the format for compatibility |
| Manifest resource | An XML application manifest can be embedded as resource type `RT_MANIFEST` (type ID 24), used by Windows to apply UAC elevation settings and visual styles |
| MIME type | `application/octet-stream` (no format-specific MIME type is registered for `.res`) |
| Source input format | Compiled from `.rc` text scripts that reference or embed `.ico`, `.cur`, `.bmp`, and other asset files via resource directives |
| Released | 1980s-1990s (Windows SDK / Resource Compiler) |
| Specification | learn.microsoft.com |
RES conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about RES files.