User-Defined-Ressource
Eine benutzerdefinierte Ressourcendefinitionsanweisung definiert eine Ressource, die anwendungsspezifische Daten enthält. Die Daten können ein beliebiges Format aufweisen und entweder als Inhalt einer bestimmten Datei (wenn der dateiname-Parameter angegeben wird) oder als Eine Reihe von Zahlen und Zeichenfolgen (wenn der Rohdatenblock angegeben ist) definiert werden.
nameID typeID filename
Der Dateiname gibt den Namen einer Datei an, die die Binärdaten der Ressource enthält. Der Inhalt der Datei wird als Ressource eingeschlossen. RC interpretiert die Binärdaten in keiner Weise. Es liegt in der Verantwortung des Programmierers sicherzustellen, dass die Daten ordnungsgemäß für die Zielcomputerarchitektur ausgerichtet sind.
Eine benutzerdefinierte Ressource kann auch vollständig im Ressourcenskript mit der folgenden Syntax definiert werden:
nameID typeID { raw-data }
Parameter
-
nameID
-
Eindeutiger Name oder eine 16-Bit-Ganzzahl ohne Vorzeichen, die die Ressource identifiziert.
-
Typeid
-
Eindeutiger Name oder eine 16-Bit-Ganzzahl ohne Vorzeichen, die den Ressourcentyp identifiziert. Wenn eine Zahl angegeben wird, muss sie größer als 255 sein. Die Zahlen 1 bis 255 sind für vorhandene und zukünftige neu definierte Ressourcentypen reserviert.
-
Dateiname
-
Name der Datei, die die Ressourcendaten enthält. Der Parameter muss ein gültiger Dateiname sein. Es muss sich um einen vollständigen Pfad handeln, wenn sich die Datei nicht im aktuellen Arbeitsverzeichnis befindet.
-
Rohdaten
-
Rohdaten, die aus einer oder mehreren ganzen Zahlen oder Zeichenfolgen von Zeichen bestehen. Ganze Zahlen können im Dezimal-, Oktal- oder Hexadezimalformat angegeben werden. Um mit 16-Bit-Windows kompatibel zu sein, werden ganze Zahlen als WORD-Werte gespeichert. Sie können eine ganze Zahl als DWORD-Wert speichern, indem Sie die ganze Zahl mit dem Suffix "L" qualifizieren.
Zeichenfolgen werden in Anführungszeichen eingeschlossen. RC fügt nicht automatisch ein abschließendes NULL-Zeichen an eine Zeichenfolge an. Jede Zeichenfolge ist eine Sequenz der angegebenen ANSI-Zeichen, es sei denn, Sie qualifizieren sie als Breitzeichenzeichenfolge mit dem Präfix "L".
Der Datenblock beginnt an einer DWORD-Grenze , und RC führt keine Auffüllung oder Ausrichtung der Daten innerhalb des Rohdatenblocks durch. Es liegt in der Verantwortung des Programmierers, die richtige Ausrichtung der Daten innerhalb des Blocks sicherzustellen.
Beispiel
Das folgende Beispiel zeigt mehrere benutzerdefinierte Anweisungen:
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
}