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 definiert werden (wenn der Dateiname Parameter angegeben wird) oder als Reihe von Zahlen und Zeichenfolgen (wenn der Rohdaten Block angegeben ist).
nameID typeID filename
Der Dateinamen gibt den Namen einer Datei an, die die Binärdaten der Ressource enthält. Der Inhalt der Datei ist als Ressource enthalten. RC interpretiert die Binärdaten nicht auf irgendeine 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 mithilfe 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.
-
Dateinamen
-
Der Name der Datei, die die Ressourcendaten enthält. Der Parameter muss ein gültiger Dateiname sein. es muss ein vollständiger Pfad sein, wenn sich die Datei nicht im aktuellen Arbeitsverzeichnis befindet.
-
rohen Daten
-
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 beendetes NULL-Zeichen an eine Zeichenfolge an. Jede Zeichenfolge ist eine Sequenz der angegebenen ANSI-Zeichen, es sei denn, Sie qualifizieren sie als breite Zeichenfolge mit dem Präfix "L".
Der Datenblock beginnt mit einer DWORD- Grenze und RC führt keine Abstände oder Ausrichtung von Daten innerhalb des Rohdatenblocks Block durch. Es liegt in der Verantwortung des Programmierers, die ordnungsgemäße 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
}