Sdílet prostřednictvím


prostředek User-Defined

Příkaz definice prostředku definovaný uživatelem definuje prostředek, který obsahuje data specifická pro aplikaci. Data můžou mít libovolný formát a dají se definovat buď jako obsah daného souboru (pokud je zadán název souboru parametr) nebo jako řada čísel a řetězců (pokud je zadaný blok nezpracovaných dat).

nameID typeID filename

Název souboru určuje název souboru obsahujícího binární data prostředku. Obsah souboru je součástí prostředku. Rc neinterpretuje binární data žádným způsobem. Je zodpovědností programátora zajistit, aby data byla správně sladěna pro cílovou architekturu počítače.

Uživatelem definovaný prostředek lze také v skriptu prostředku definovat úplně pomocí následující syntaxe:

nameID typeID  {  raw-data  }

Parametry

nameID

Jedinečný název nebo 16bitové celé číslo bez znaménka, které identifikuje prostředek.

typeID

Jedinečný název nebo 16bitové celé číslo bez znaménka, které identifikuje typ prostředku. Pokud je zadané číslo, musí být větší než 255. Čísla 1 až 255 jsou vyhrazena pro existující a budoucí předdefinované typy prostředků.

název souboru

Název souboru, který obsahuje data o prostředcích Parametr musí být platný název souboru; Pokud soubor není v aktuálním pracovním adresáři, musí to být úplná cesta.

nezpracovaných dat

Nezpracovaná data sestávající z jednoho nebo více celých čísel nebo řetězců znaků. Celá čísla lze zadat v desítkovém, osmičkovém nebo šestnáctkovém formátu. Aby byla kompatibilní s 16bitovou verzí Windows, celá čísla se ukládají jako hodnoty WORDu. Celé číslo můžete uložit jako hodnotu DWORD tím, že kvalifikujete celé číslo s příponou "L".

Řetězce jsou uzavřeny v uvozovkách. Rc nepřidává k řetězci automaticky ukončující znak null. Každý řetězec je posloupnost zadaných znaků ANSI, pokud ho nekvalifikujete jako řetězec širokého znaku s předponou "L".

Blok dat začíná na hranice DWORD a RC neprovádí žádné odsazení nebo zarovnání dat v rámci nezpracovaných dat bloku. Je zodpovědností programátora zajistit správné zarovnání dat v rámci bloku.

Příklad

Následující příklad ukazuje několik uživatelsky definovaných příkazů:

array   MYRES   data.res
14      300     custom.res
18 MYRES2
{
   "Here is an ANSI string\0",    // explicitly null-terminated 
   L"Here is a Unicode string\0", // explicitly null-terminated 
   1024,                          // integer, stored as WORD 
   7L,                            // integer, stored as DWORD 
   0x029a,                        // hex integer 
   0o733,                         // octal integer 
}