User-Defined erőforrás
A felhasználó által definiált erőforrásdefiníciós utasítás alkalmazásspecifikus adatokat tartalmazó erőforrást határoz meg. Az adatok bármilyen formátumúak lehetnek, és definiálhatók egy adott fájl tartalmaként (ha a fájlnév paraméter van megadva), vagy szám- és sztringsorozatként (ha a nyers adat blokk van megadva).
nameID typeID filename
A fájlnév az erőforrás bináris adatait tartalmazó fájl nevét adja meg. A fájl tartalma erőforrásként szerepel. Az RC semmilyen módon nem értelmezi a bináris adatokat. A programozó feladata annak biztosítása, hogy az adatok megfelelően igazodjanak a célszámítógép architektúrához.
A felhasználó által definiált erőforrások az erőforrásszkriptben is definiálhatók az alábbi szintaxis használatával:
nameID typeID { raw-data }
Paraméterek
-
nameID
-
Egyedi név vagy egy 16 bites, aláíratlan egész szám, amely azonosítja az erőforrást.
-
typeID
-
Egyedi név vagy egy 16 bites aláíratlan egész szám, amely azonosítja az erőforrás típusát. Ha egy szám meg van adva, annak 255-nél nagyobbnak kell lennie. Az 1–255-ös számok a meglévő és a jövőben újradefiniált erőforrástípusok számára vannak fenntartva.
-
fájlnév
-
Az erőforrás-adatokat tartalmazó fájl neve. A paraméternek érvényes fájlnévnek kell lennie; teljes elérési útnak kell lennie, ha a fájl nem az aktuális munkakönyvtárban található.
-
nyersadat-
-
Egy vagy több egész számból vagy karaktersorozatból álló nyers adatok. Az egész számok decimális, oktális vagy hexadecimális formátumban is megadhatók. A 16 bites Windowssal való kompatibilitás érdekében az egész számok WORD-értékekként vannak tárolva. Az egész számokat DWORD-értékként tárolhatja, ha az egész számot az "L" utótaggal minősíti.
A sztringek idézőjelek közé vannak zárva. Az RC nem fűz hozzá automatikusan null karaktert egy sztringhez. Minden sztring a megadott ANSI-karakterek sorozata, hacsak nem minősíti széles karakterű sztringnek az "L" előtaggal.
Az adatblokk egy DWORD határán kezdődik, és az RC nem végez kitöltést vagy igazítást az adatokhoz a nyersadat- blokkon belül. A programozó feladata, hogy biztosítsa az adatok megfelelő igazítását a blokkon belül.
Példa
Az alábbi példa több felhasználó által definiált utasítást mutat be:
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
}