What is the RC file format?
An .rc file is a plain-text source file that defines Windows application resources - user-interface elements and binary data compiled and linked into an executable (.exe) or dynamic-link library (.dll). Resources defined in an .rc file include dialog boxes, menus, string tables, icons, cursors, bitmaps, version information blocks, accelerator tables, and arbitrary binary data (RCDATA).
The format uses C preprocessor syntax: .rc files typically begin with #include "resource.h" to pull in numeric identifier constants, and they support #define macros throughout. The resource compiler rc.exe (part of the Windows SDK) processes the .rc file into a binary .res file, which the linker then embeds into the final PE executable.
Visual Studio's resource editor saves .rc files as UTF-16 LE with a BOM, while hand-authored files are typically ASCII. Cross-platform MinGW/GCC toolchains include windres, which compiles .rc files for Windows targets on Linux or macOS.
The .rc format has been stable since the Windows 3.0 era and remains the standard mechanism for Win32 resources in 2026. In .NET projects, managed resources use .resx and .resources files instead.
- The
DIALOGEXresource type (extended dialogs) was introduced with Win32 around 1993. - Resource Hacker is a popular tool for viewing and editing resources already compiled into
.exeand.dllfiles. windresis the GNU Binutils equivalent ofrc.exefor cross-compilation targets.
Security & safety
RISK: LOWPlain-text source file that requires compilation to be useful. Contains no executable code by itself - only resource definitions. Inspect raw text with any editor before compiling from untrusted sources; RCDATA blocks can embed arbitrary binary payloads that become part of the compiled EXE.
Format details
in a nutshell- Lynx Browser Configuration File - Unix text-mode browser Lynx uses ~/.lynxrc (sometimes .rc) as a plain-text runtime configuration file - unrelated to Windows resources.
- Generic Unix Run Commands / Config file - .rc suffix is a Unix convention for runtime configuration files (e.g., .bashrc, .vimrc) - no relation to Windows resource scripts.
Programs that open RC files
Technical details
deep spec| Format type | Plain-text source file - C preprocessor syntax combined with resource definition keywords |
| Encoding | ASCII (hand-authored) or UTF-16 LE with BOM (Visual Studio resource editor output) |
| Compiler | rc.exe (Windows SDK / Visual Studio); windres (MinGW / GNU Binutils for cross-compilation) |
| Output format | Binary .res file, linked into a PE (EXE or DLL) by the linker |
| Supported resource types | DIALOG/DIALOGEX, MENU, STRINGTABLE, ICON, BITMAP, CURSOR, VERSIONINFO, ACCELERATORS, RCDATA |
| Preprocessor support | Full C preprocessor - #include, #define, #ifdef directives supported |
| UTF-16 LE BOM | Written by Visual Studio resource editor; optional for hand-authored .rc files |
| DIALOGEX | Extended dialog resource type introduced with Win32 (~1993); supports help IDs and extended styles |
| VERSIONINFO block | Embeds product name, version string, file description, and copyright into the binary |
| Typical file size | 1 KB - 200 KB; larger when binary data is inlined via RCDATA |
| Platform | Windows (format and rc.exe); cross-compiled on Linux/macOS via windres |
| Format stability | Core design unchanged since Windows 3.0; still the standard Win32 resource mechanism in 2026 |
| Related header | resource.h - auto-generated by Visual Studio with numeric resource ID constant definitions |
| .NET alternative | .resx / .resources files for managed .NET application resources |
| Released | 1985 (Windows 1.0 SDK resource compiler) |
| Latest version | RC format is stable; Windows SDK rc.exe ships with Visual Studio 2022 (current) |
| Specification | learn.microsoft.com |
RC conversions
Community Q&A
asked by usersNo questions yet - be the first to ask about RC files.