User-Defined-resource
Een door de gebruiker gedefinieerde resourcedefinitie-instructie definieert een resource die toepassingsspecifieke gegevens bevat. De gegevens kunnen elke indeling hebben en kunnen worden gedefinieerd als de inhoud van een bepaald bestand (als de bestandsnaam parameter wordt gegeven) of als een reeks getallen en tekenreeksen (als het onbewerkte gegevens blok is opgegeven).
nameID typeID filename
De bestandsnaam de naam van een bestand met de binaire gegevens van de resource. De inhoud van het bestand wordt opgenomen als de resource. RC interpreteert de binaire gegevens op geen enkele manier. Het is de verantwoordelijkheid van de programmeur om ervoor te zorgen dat de gegevens goed zijn afgestemd op de doelcomputerarchitectuur.
Een door de gebruiker gedefinieerde resource kan ook volledig worden gedefinieerd in het resourcescript met behulp van de volgende syntaxis:
nameID typeID { raw-data }
Parameters
-
nameID-
-
Unieke naam of een 16-bits geheel getal dat de resource identificeert.
-
typeID-
-
Unieke naam of een 16-bits geheel getal dat het resourcetype identificeert. Als een getal wordt opgegeven, moet dit groter zijn dan 255. De getallen 1 tot en met 255 zijn gereserveerd voor bestaande en toekomstige opnieuw gedefinieerde resourcetypen.
-
bestandsnaam
-
Naam van het bestand dat de resourcegegevens bevat. De parameter moet een geldige bestandsnaam zijn; het moet een volledig pad zijn als het bestand zich niet in de huidige werkmap bevindt.
-
onbewerkte gegevens
-
Onbewerkte gegevens die bestaan uit een of meer gehele getallen of tekenreeksen. Gehele getallen kunnen worden opgegeven in decimale, octale of hexadecimale notatie. Als u compatibel wilt zijn met 16-bits Windows, worden gehele getallen opgeslagen als WORD-waarden. U kunt een geheel getal opslaan als een DWORD-waarde door het gehele getal te kwalificeren met het achtervoegsel L.
Tekenreeksen staan tussen aanhalingstekens. RC voegt niet automatisch een afsluit null-teken toe aan een tekenreeks. Elke tekenreeks is een reeks van de opgegeven ANSI-tekens, tenzij u deze in aanmerking komt als een tekenreeks met het voorvoegsel L.
Het gegevensblok begint op een DWORD- grens en RC voert geen opvulling of uitlijning van gegevens uit binnen het blok onbewerkte gegevens. Het is de verantwoordelijkheid van de programmeur om de juiste uitlijning van gegevens binnen het blok te garanderen.
Voorbeeld
In het volgende voorbeeld ziet u verschillende door de gebruiker gedefinieerde instructies:
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
}