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 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 
}