Co to jest format pliku RES?
Rozszerzenie pliku .res jest używane przez format skompilowanych plików zasobów Windows, generowany podczas procesu budowania programu Win32 przez kompilator zasobów (rc.exe). Pliki .res przechowują zasoby binarne używane przez dany program, w tym kursory, czcionki, obrazy bitmapowe, ikony, dźwięki, definicje okien dialogowych, tabele ciągów znaków, menu oraz informacje o wersji.
Skrypt źródłowy .rc jest czytelnym dla człowieka wejściem; skompilowanie go za pomocą rc.exe daje binarny pakiet .res, który linker (link.exe) następnie scala w gotowy plik wykonywalny .exe lub bibliotekę .dll.
Plik .res systemu Win32, w przeciwieństwie do starszych plików Win16, obsługuje Unicode - identyfikatory typów i nazw zasobów mogą być kodowane jako ciągi Unicode. Format binarny zaczyna się od obowiązkowego pustego (null) wpisu zasobu zajmującego 32 bajty pod offsetem 0, który działa jako praktyczna sygnatura pliku i nie istniał w wariancie 16-bitowym.
Typowe typy zasobów osadzone w pliku .res obejmują:
RT_ICON/RT_CURSOR- ikony aplikacji i kursory myszyRT_BITMAP- osadzone obrazy BMPRT_DIALOG,RT_MENU,RT_STRING- definicje interfejsu użytkownika i tabele ciągów znakówRT_VERSION- metadane wersji pliku wyświetlane we właściwościach Eksploratora WindowsRT_MANIFEST- manifest zestawu side-by-side dla ustawień UAC i stylów wizualnych
Każdy wpis zasobu posiada identyfikator języka (LANGID), co pozwala temu samemu plikowi .res na przechowywanie zlokalizowanych wariantów ciągów znaków i okien dialogowych dla wielu regionów.
Bezpieczeństwo
RYZYKO: LOWSkompilowany plik .res to pasywne dane binarne (ikony, okna dialogowe, teksty); nie jest on samodzielnie wykonywalny, więc otwieranie go w edytorze zasobów jest bezpieczne. Należy jednak zachować ostrożność, ponieważ rozszerzenie .res jest często używane przez inne programy: plik o tej nazwie może być archiwum danych gry lub plikiem wyników symulacji. Ponadto narzędzia do „edycji zasobów” są czasem używane do modyfikowania lub łamania istniejących programów - edycja zasobów wewnątrz podpisanego pliku .exe/.dll innej firmy narusza jego podpis cyfrowy i może naruszać licencję.
Szczegóły formatu
w pigułce- Embarcadero/Borland Delphi & C++Builder .res - Projekty Delphi/C++Builder zawierają skompilowany plik .res (ikony, informacje o wersji) połączony z plikiem binarnym - ten sam format zasobów Windows.
- Ogólny plik danych „resources” (gry/aplikacje) - Niektóre gry i aplikacje nazywają skompresowane archiwum zasobów/danych rozszerzeniem „.res”; jest ono specyficzne dla danej aplikacji i nie jest formatem zasobów Windows.
- ANSYS / plik wyników inżynieryjnych - Niektóre narzędzia do symulacji (np. ANSYS) zapisują wyniki analiz do pliku .res, co nie jest powiązane z zasobami Windows.
Programy otwierające pliki RES
Szczegóły techniczne
specyfikacja| Typ formatu | Skompilowany binarny pakiet zasobów; pośredni artefakt budowania, a nie samodzielny plik wykonywalny |
| Generowany przez | `rc.exe` (Windows Resource Compiler), dołączony do Windows SDK i narzędzi budowania Visual Studio |
| Używany przez | Linker `link.exe`, który osadza dane zasobów w końcowym pliku `.exe` lub `.dll` podczas konsolidacji |
| Struktura pliku | Sekwencja wpisów zasobów o zmiennej długości; każdy wpis posiada nagłówek o stałym układzie (rozmiar danych, rozmiar nagłówka, typ, nazwa, wersja danych, flagi pamięci, ID języka, wersja, charakterystyka), po którym następują surowe dane zasobu |
| Sygnatura pliku | 32-bajtowy pusty wpis zasobu pod offsetem 0: rozmiar danych `0x00000000`, rozmiar nagłówka `0x00000020`, znaczniki typu/nazwy `0xFFFF 0x0000 0xFFFF 0x0000` |
| Kolejność bajtów | Little-endian; wszystkie wielobajtowe liczby całkowite przechowywane w kolejności bajtów Intel (LE) |
| Wyrównanie | Dane każdego wpisu zasobu są dopełniane do granicy DWORD (4 bajty) wewnątrz pliku |
| Obsługa Unicode | Identyfikatory typów i nazw zasobów obsługują Unicode; identyfikatory porządkowe używają prefiksu `0xFFFF`, identyfikatory tekstowe to wbudowane ciągi UTF-16LE zakończone znakiem null |
| ID języka (LANGID) | Każdy wpis zasobu przechowuje Windows LANGID, co pozwala na wiele zlokalizowanych wariantów tego samego typu/nazwy zasobu w jednym pliku |
| Win32 a Win16 | 32-bitowy `.res` jest binarnie niekompatybilny z 16-bitowym Win16 `.res`; Win16 nie posiadał pustego nagłówka startowego i używał innego układu rekordów bez obsługi Unicode |
| Obsługiwane typy zasobów | `RT_ICON`, `RT_CURSOR`, `RT_BITMAP`, `RT_DIALOG`, `RT_MENU`, `RT_STRING`, `RT_ACCELERATOR`, `RT_VERSION`, `RT_MANIFEST`, `RT_FONT`, plus niestandardowe identyfikatory typów zdefiniowane przez użytkownika |
| Flagi pamięci | Każdy wpis zawiera dziedziczone flagi pamięci (MOVEABLE, PURE, PRELOAD, DISCARDABLE) z mechanizmu ładowania zasobów Windows 3.x; zachowane w formacie dla kompatybilności |
| Zasób manifestu | Manifest aplikacji XML może być osadzony jako zasób typu `RT_MANIFEST` (ID typu 24), używany przez system Windows do stosowania ustawień uprawnień UAC i stylów wizualnych |
| Typ MIME | `application/octet-stream` (brak zarejestrowanego specyficznego typu MIME dla `.res`) |
| Format wejściowy źródła | Kompilowany z tekstowych skryptów `.rc`, które odwołują się do plików `.ico`, `.cur`, `.bmp` i innych plików zasobów poprzez dyrektywy zasobów |
| Wydano | 1980s-1990s (Windows SDK / Resource Compiler) |
| Specyfikacja | learn.microsoft.com |
Konwersje RES
Pytania i odpowiedzi społeczności
pytania użytkownikówBrak pytań - bądź pierwszą osobą, która zapyta o pliki RES.