Freigeben über


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 
}