Ressourcenhilfsprogramme
In diesem Thema werden zwei Hilfsprogramme beschrieben, die zum Erstellen von MUI-Anwendungen verwendet werden. Während MUIRCT ein MUI-spezifisches Tool ist, verwendet MUI auch das standardmäßige Windows RC Compiler-Hilfsprogramm. Anweisungen zur Verwendung dieser Hilfsprogramme finden Sie unter Lokalisieren von Ressourcen und Erstellen des Application.
MUIRCT Utility
MUIRCT (Muirct.exe) ist ein Befehlszeilenprogramm zum Aufteilen einer standardmäßigen ausführbaren Datei in eine LN-Datei und sprachspezifische (d. h. lokalisierbare) Ressourcendateien. Jede der resultierenden Dateien enthält Ressourcenkonfigurationsdaten für die Dateizuordnung. MUIRCT ist im Microsoft Windows SDK für Windows Vista enthalten.
Anmerkung
Ab Windows Vista wird das Win32-Ressourcenladeprogramm aktualisiert, um Ressourcen aus sprachspezifischen Dateien sowie aus LN-Dateien zu laden.
MUIRCT-Verwendungen
Teilen Sie die Binärdatei basierend auf rc_config Datei in die Hauptdatei für binär und mui.
Muirct -q rc_config [-c checksum_file [-b LangID]] [-x LangID] [-g LangId] [-f] [-m] [-v level] source_file [output_LN_file] [output_MUI_file]
Extrahieren Sie die Prüfsumme aus checksum_file, und fügen Sie sie in output_file ein.
Muirct -c checksum_file [-b LangID] -e output_file
Berechnen Sie die Prüfsumme basierend auf checksum_file, und fügen Sie sie in output_file ein.
Muirct -c checksum_file [-b LangID] -q rc_config -z output_file
Abbilden von Ressourcenkonfigurationsdateninhalten aus input_file.
Muirct -d input_file
MUIRCT-Syntax
MUIRCT kann von Befehlszeilenoptionen und/oder aus einer Ressourcenkonfigurationsdatei, die mithilfe der option -q angegeben wird, eine Richtung annehmen.
muirct [-h|-?] [ -c checksum_file] [-b langid] ]
[-g langid] [-q resource configuration file<RCF>] [-v level] [-x langid]
[-e output_file] [-z output_file] [-f] [-d MUI'ized file] [-m file_version]
source_filename [language_neutral_filename] [mui_filename]
Schalter und Argumente
Option | Zweck |
---|---|
-h oder -? | Zeigt den Hilfebildschirm an. |
-c | Gibt die Eingabe checksum_file an, aus der die Ressourcenprüfsumme extrahiert oder berechnet werden soll. Checksum_file muss eine Win32-Binärdatei sein, die lokalisierbare Ressourcen enthält. Wenn checksum_file Ressourcen für mehrere Sprachen enthält, muss der -b Switch verwendet werden, um anzugeben, welche dieser Elemente verwendet werden sollen, andernfalls schlägt MUIRCT fehl. |
-b | Gibt die Sprache an, die verwendet werden soll, wenn die mit -c angegebene checksum_file Ressourcen in mehreren Sprachen enthält. Dieser Schalter kann nur in Verbindung mit dem schalter -c verwendet werden. Der Sprachbezeichner kann im Dezimal- oder Hexadezimalformat vorliegen. MUIRCT schlägt fehl, wenn die checksum_file Ressourcen in mehreren Sprachen enthält und die -b nicht angegeben wird oder die durch die option -b angegebene Sprache im checksum_file nicht gefunden werden kann. |
-g | Gibt die Sprach-ID an, die als ultimative Fallbacksprache im Ressourcenkonfigurationsdatenabschnitt der LN-Datei eingeschlossen werden soll. Wenn das Ressourcenladeprogramm eine angeforderte MUI-Datei aus den bevorzugten UI-Sprachen des Threads nicht laden kann, wird die ultimative Fallbacksprache als letzter Versuch verwendet. Der LangID-Wert kann im Dezimal- oder Hexadezimalformat angegeben werden. Beispielsweise kann Englisch (USA) durch -g 0x409 oder -g 1033 angegeben werden. |
-q | Gibt an, dass die source_file in die output_LN_file und die output_MUI_file gemäß dem rc_config Dateilayout aufgeteilt werden soll. Die rc_config Datei ist eine XML-formatierte Datei, die angibt, welche Ressourcen in die MUI-Datei extrahiert werden und welche in der LN-Datei verbleiben. Die rc_config kann die Verteilung von Ressourcentypen und einzelnen benannten Elementen zwischen dem output_LN_file und output_MUI_file angeben. Die source_file muss eine Win32-Binärdatei sein, die Ressourcen in einer einzigen Sprache enthält, andernfalls schlägt MUIRCT fehl. MUIRCT teilt die Datei nicht, wenn sie sprachneutral ist, die durch die Angabe nur den Sprach-ID-Wert 0 in der Datei angegeben wird. Die output_LN_file und output_mui_file sind die Namen der Sprachneutral- und MUI-Datei, in die die source_file aufgeteilt wird. Diese Dateinamen sind optional. Wenn sie nicht angegeben sind, fügt MUIRCT die Erweiterungen LN und MUI an source_file an. Normalerweise sollten Sie die Erweiterung ".ln" vor der Bereitstellung der Datei entfernen. MUIRCT ordnet die output_LN_file und output_MUI_file zu, indem eine Prüfsumme basierend auf dem source_file Namen und der Dateiversion berechnet und das Ergebnis in den Ressourcenkonfigurationsbereich jeder Ausgabedatei eingefügt wird. Bei Verwendung in Verbindung mit dem -c Schalter hat der -q Schalter Vorrang. Wenn die rc_config Datei, die mit der option -q bereitgestellt wird, eine Prüfsumme enthält, ignoriert die -c Switch und fügt den Prüfsummenwert aus dem Wert ein, rc_config Datei in die LN- und MUI-Dateien. Wenn im rc_config kein Prüfsummenwert gefunden wird, berechnet MUIRCT die Ressourcenprüfsumme basierend auf dem Verhalten des -c Schalters. |
-v | Gibt die Ausführlichkeitsstufe für die Protokollierung an. Geben Sie 1 an, um alle grundlegenden Fehlermeldungen und Vorgangsergebnisse zu drucken. Geben Sie 2 an, um auch die Ressourceninformationen (Typ, Name, Sprachbezeichner) einzuschließen, die in der MUI-Datei und der LN-Datei enthalten sind. Der Standardwert ist -v 1 |
-x | Gibt die Sprach-ID an, mit der MUIRCT alle Ressourcentypen kennzeichnet, die dem Ressourcenabschnitt der MUI-Datei hinzugefügt wurden. Der LangID-Wert kann im Dezimal- oder Hexadezimalformat angegeben werden. Beispielsweise kann Englisch (USA) durch -x 0x409 oder -x 1033 angegeben werden. |
-e | Extrahiert die im checksum_file enthaltene Ressourcenprüfsumme, die mit dem -c Switch bereitgestellt wird, und fügt sie in die angegebene output_file ein. Wenn -e angegeben wird, ignoriert MUIRCT alle anderen Schalter als den -c Schalter. In diesem Fall muss die checksum_file eine Win32-Binärdatei sein, die einen Abschnitt mit Ressourcenkonfigurationsdaten mit einem Prüfsummenwert enthält. Die output_file muss eine vorhandene LN- oder MUI-Datei sein. |
-z | Berechnet und fügt Ressourcenprüfsummendaten in die angegebene Ausgabedatei ein. MUIRCT basiert auf der Prüfsummenberechnung auf der Eingabe, die mit dem -c Schalter bereitgestellt wird, und dem optionalen -b Schalter. Wenn Sie eine Ausgabedatei für den nicht vorhandenen -z Switch angeben, wird MUIRCT mit einem Fehler beendet. Beispiel: Berechnet die Prüfsumme basierend auf lokalisierbaren Ressourcen in Notepad.exe und fügt die Prüfsumme in die Ausgabedatei Notepad2.exeein. muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe |
-f | Ermöglicht das Erstellen einer MUI-Datei mit der Versionsressource als einzige lokalisierbare Ressource. Standardmäßig lässt MUIRCT dies nicht zu. |
-d | Sucht und zeigt eingebettete Ressourcenkonfigurationsdaten in der Quelldatei an. Wenn Sie diesen Schalter angeben, ignoriert MUIRCT alle anderen Befehlszeilenoptionen. |
-m | Gibt die Versionsnummer an, die beim Berechnen der Prüfsumme zum Zuordnen der output_LN_file und output_MUI_file verwendet werden soll. |
source_filename | Name der lokalisierten Binärquelldatei; Wildcards können nicht verwendet werden. Diese Datei kann nur Ressourcen in einer Sprache enthalten. Wenn in der Datei Ressourcen in mehreren Sprachen vorhanden sind, schlägt MUIRCT fehl, es sei denn, der -b Switch wird verwendet. Wenn die Datei Ressourcen mit Sprachbezeichnern mit dem Wert 0 enthält, teilt MUIRCT die Datei nicht, da ein Sprachbezeichner von 0 eine neutrale Sprache angibt. Für den -d Switch ist source_filename entweder eine LN-Datei oder eine sprachspezifische Ressourcendatei, für die MUIRCT Ressourcenkonfigurationsdaten anzeigt. |
language_neutral_filename | Wahlfrei. Name der LN-Datei. Wenn Sie den Namen dieser Datei nicht angeben, fügt MUIRCT eine zweite Erweiterung ".ln" an den Quelldateinamen an, der als sprachneutraler Dateiname verwendet werden soll. Normalerweise sollten Sie die Erweiterung ".ln" vor der Bereitstellung der Datei entfernen.
Hinweis: Die LN-Datei darf keine Zeichenfolgen oder Menüs enthalten. Sie sollten sie manuell entfernen. |
mui_filename | Wahlfrei. Name der sprachspezifischen Ressourcendatei. Wenn Sie keinen Namen angeben, fügt MUIRCT eine zweite Erweiterung ".mui" an den Quelldateinamen an, der als Dateiname verwendet werden soll. Normalerweise erstellt MUIRCT eine sprachspezifische Ressourcendatei. Es wird jedoch keine Ressourcendatei erstellt, wenn eine der folgenden Bedingungen vorhanden ist:
|
MUIRCT-Sprachausgabe
MUIRCT wählt den Attributwert "UltimateFallbackLanguage" aus, der in die LN-Dateiressourcenkonfigurationsdaten basierend auf der folgenden Reihenfolge eingefügt werden soll, von der höchsten Priorität bis zum niedrigsten Wert:
- Attribut "UltimateFallbackLanguage" in der Quellressourcenkonfigurationsdatei, wenn ein Attribut als Eingabe übergeben wird.
- Die mit dem Schalter -g angegebene Sprache.
- Eingabedateisprache.
MUIRCT wählt den Attributwert "language" aus, der in die MUI-Dateiressourcenkonfigurationsdaten eingefügt werden soll, basierend auf der folgenden Reihenfolge:
- Attribut "language" in der Quellressourcenkonfigurationsdatei, wenn ein Attribut als Eingabe übergeben wird.
- Die durch den Schalter -x angegebene Sprache (Force Language).
- Eingabedateisprache.
MUIRCT-Prüfsummenbehandlung
Das Betriebssystem berechnet normalerweise die Prüfsumme über die sprachspezifischen Ressourcen in einer Datei, es sei denn, Sie geben die Prüfsumme über eine Ressourcenkonfigurationsdatei an. Solange die Prüfsumme für die LN-Datei und alle zugehörigen sprachspezifischen Ressourcendateien und das Sprachattribut in der Ressourcenkonfiguration in der LN- und sprachabhängigen Übereinstimmung identisch ist, kann das Ressourcenladeprogramm Ressourcen erfolgreich laden.
MUIRCT unterstützt mehrere Methoden zum Platzieren geeigneter Prüfsummen in den Ressourcenkonfigurationsdaten:
- Erstellen Sie eine ausführbare Datei für jede Sprache, die Sowohl Code als auch Ressourcen enthält. Verwenden Sie danach MUIRCT, um jede dieser Dateien in eine LN-Datei und eine sprachspezifische Ressourcendatei aufzuteilen. MUIRCT wird mehrmals ausgeführt, einmal zum Generieren einer Ressourcendatei für jede Sprache. Sie können den Build auf folgende Weise ausführen:
- Verwenden Sie den Schalter -q, um einen Prüfsummenwert in der Ressourcenkonfigurationsdatei anzugeben. MUIRCT platziert diesen Wert in allen LN-Dateien und sprachspezifischen Ressourcendateien. Sie müssen eine Strategie für die Auswahl dieses Werts übernehmen, wie weiter unten in diesem Thema beschrieben.
- Verwenden Sie die option -c (und optional die option -b switch), um eine einzelne Sprache mit Ressourcen auszuwählen, aus denen MUIRCT die Prüfsumme extrahiert.
- Verwenden Sie den Schalter -z, um eine einzelne Sprache mit Ressourcen auszuwählen, aus denen MUIRCT immer die Prüfsumme extrahiert. Wenden Sie diese Prüfsumme an, nachdem die Dateien mit anderen Methoden erstellt wurden.
- Erstellen Sie eine ausführbare Datei, die Code und Ressourcen für eine einzelne Sprache enthält. Verwenden Sie danach MUIRCT, um die Ressourcen zwischen der LN-Datei und der sprachspezifischen Ressourcendatei aufzuteilen. Verwenden Sie schließlich ein Binäres Lokalisierungstool, um die resultierende Ressourcendatei für jede Sprache zu ändern.
Die häufigste Konvention für die Prüfsummenbehandlung besteht darin, die Prüfsumme auf den englischen Ressourcen (USA) zu basieren. Sie können eine andere Konvention einführen, solange sie für jede LN-Datei konsistent ist. Beispielsweise ist es vollkommen akzeptabel, dass ein Softwareentwicklungsunternehmen seine Prüfsummen in der Software basiert, auf der es auf französischen (Frankreich)-Ressourcen anstelle von Englischressourcen (USA) basiert, solange alle Anwendungen französische (Frankreich) Ressourcen haben, auf denen die Prüfsummen basieren. Es ist auch zulässig, die Ressourcenkonfigurationsdatei zu verwenden, um einen beliebigen Hexadezimalwert von bis zu 16 Hexadezimalziffern als Prüfsumme zuzuweisen. Diese letzte Strategie schließt die effektive Verwendung der Schalter -z, -c und -b von MUIRCT aus. Sie erfordert die Übernahme einer Methode mithilfe GuidGen- oder eines anderen Tools zum Generieren von Prüfsummenwerten. Diese Strategie erfordert auch, dass Sie eine Richtlinie einrichten, um zu bestimmen, wann der Wert geändert werden soll, wenn neue lokalisierbare Ressourcen hinzugefügt werden.
Wenn Sie die Englisch-Prüfsumme (USA) auf alle Dateien anwenden möchten, können Sie eine der oben beschriebenen Prüfsummenbehandlungsmethoden verwenden. Sie können z. B. die LN-Datei und die sprachspezifische Ressourcendatei für Englisch (USA) generieren und dann die MUIRCT--d wechseln, um die resultierende Prüfsumme zu erhalten. Sie können diese Prüfsumme in Ihre Ressourcenkonfigurationsdatei kopieren und den -q Switch mit MUIRCT verwenden, um die Prüfsumme auf alle anderen Dateien anzuwenden.
Verwendung einer Ressourcenkonfigurationsdatei mit MUIRCT
Sie können Ressourcenkonfigurationsdaten angeben, wenn Sie MUIRCT verwenden. Unabhängig davon, ob Sie eine Ressourcenkonfigurationsdatei explizit angeben, verfügt jede sprachspezifische Ressourcendatei über Ressourcenkonfigurationsdaten, ebenso wie jede LN-Datei mit einer zugeordneten Ressourcendatei. Zum Beispiel:
- Wenn Sie die option -q zum Angeben einer Ressourcenkonfigurationsdatei verwenden, aber keine lokalisierbaren Ressourcen in Der Eingabequelldatei vorhanden sind, wird keine sprachspezifische Ressourcendatei generiert, und die resultierende LN-Datei enthält keine Ressourcenkonfigurationsdaten. Wenn die Eingabequelldatei über mehrsprachige Ressourcen verfügt, teilt MUIRCT die Datei nicht.
Anmerkung
Derzeit ist das Verhalten von MUIRCT inkonsistent, wenn das neutralResources-Element der Ressourcenkonfigurationsdatei keine resourceType-Elemente enthält und das localizedResources-Element beispielsweise Zeichenfolgen und Menüs enthält. In einem solchen Fall teilt MUIRCT die Ressourcen wie folgt auf:
- Alle Ressourcen in der ursprünglichen Binärdatei (einschließlich Zeichenfolgen und Menüs) sowie die MUI-Ressourcen werden in der LN-Datei platziert.
- Zeichenfolgen, Menüs und MUI-Ressourcen werden in der entsprechenden sprachspezifischen Ressourcendatei platziert.
Beispiele für die Verwendung von MUIRCT
Beispiele für standardverwendungs-
muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui
muirct -d myprog.exe.mui
Beispiel für die LN-Dateiausgabe mit -d Switch
Hier ist ein Beispiel für die Ausgabe von Ressourcenkonfigurationsdaten aus einer LN-Datei, Shell32.dll, mithilfe des -d Switch mit MUIRCT:
Signature - fecdfecd
Length - 148
RC Config Version - 10000
FileType - 11
SystemAttributes - 100
UltimateFallback location - external
Service Checksum - 14f44a8d86bef14af26d9a885964c935
Checksum - f5b3b7ab330439d6fcc07582c3afb613
MainNameTypes - AVI FTR ORDERSTREAM TYPELIB UIFILE XML MUI
MainIDTypes - 1 2 3 12 14 16 24
MuiNameTypes - MUI
MuiIDTypes - 2 3 4 5 6 9 14 16
UltimateFallbackLanguage - en-US
Beispiel für Language-Specific Ressourcendateiausgabe mithilfe -d Switch-
Hier ist ein Beispiel für die Ausgabe der Ressourcenkonfigurationsdaten aus einer MUI-Datei, Shell32.dll.mui, unter Verwendung des -d Switch für MUIRCT:
Signature - fecdfecd
Length - c8
RC Config Version - 10000
FileType - 12
SystemAttributes - 100
Service Checksum - 14f44a8d86bef14af26d9a885964c935
Checksum - f5b3b7ab330439d6fcc07582c3afb613
MainNameTypes - MUI
MainIDTypes - 2 3 4 5 6 9 14 16
Language - en-US
RC Compiler Utility
RC Compiler (Rc.exe) ist ein Befehlszeilenprogramm zum Kompilieren einer Ressourcendefinitionsskriptdatei (RC-Erweiterung) in Ressourcendateien (RES-Erweiterung). RC Compiler ist im Windows SDK enthalten. In diesem Dokument wird nur die Verwendung von RC Compiler mit MUI-bezogenen Funktionen des Ressourcenladeprogramm erläutert. Vollständige Informationen zum Compiler finden Sie unter Informationen zu Ressourcendateien.
Rc Compiler ermöglicht es Ihnen, aus einer einzigen Gruppe von Quellen, einer LN-Datei und einer separaten sprachspezifischen Ressourcendatei zu erstellen. Wie bei MUIRCT werden die Dateien durch Ressourcenkonfigurationsdaten verknüpft.
RC Compilersyntax wie für MUI-Ressourcen verwendet
RC Compiler switches are defined in Using RC. In diesem Abschnitt werden nur die Optionen definiert, die zum Erstellen von MUI-Ressourcen verwendet werden. Denken Sie daran, dass bei jedem Schalter die Groß-/Kleinschreibung nicht beachtet wird. Ressourcentypen werden als sprachneutral angenommen, sofern nichts anderes angegeben ist.
rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]
Schalter und Argumente
Option | Funktion |
---|---|
-h oder -? | Zeigt den Hilfebildschirm an. |
-FM | Verwendet die angegebene Ressourcendatei für sprachspezifische Ressourcen. Normalerweise erstellt der Ressourcencompiler eine sprachspezifische Ressourcendatei. Die Datei wird jedoch nicht erstellt, wenn eine der folgenden Bedingungen vorhanden ist:
|
-q | Verwendet die angegebene Ressourcenkonfigurationsdatei, um die Ressourcentypen abzurufen, die in der sprachspezifischen Ressourcendatei und in der LN-Datei platziert werden sollen. Weitere Informationen finden Sie unter Vorbereiten einer Ressourcenkonfigurationsdatei. Als Alternative zu diesem Switch können Sie die Option -j und -k verwenden, es wird jedoch bevorzugt, eine Ressourcenkonfigurationsdatei zu verwenden. Mit dem Switch -q mit einer Ressourcenkonfigurationsdatei können Sie eine elementbasierte Aufteilung implementieren und Attribute bereitstellen, die mit der binären Ressourcenkonfiguration in der LN- und sprachspezifischen Ressourcendatei enden. Diese Aufteilung ist mit den Schaltern -j und -k nicht möglich. Hinweis: Der geteilte RC-Compilerprozess funktioniert nicht ordnungsgemäß, wenn Sie Ressourcen- und Versionsinformationen in verschiedenen Ressourcenkonfigurationsdateien speichern. In diesem Fall teilt RC Compiler die Versionsinformationen nicht auf. Daher tritt beim Verknüpfen der sprachspezifischen Ressourcendatei ein Linkerfehler auf, da die Datei keine Versionsressourcen enthält. |
-g | Gibt die ultimative Fallbacksprache Bezeichners hexadezimal an. |
-g1 | Erstellt eine MUI-RES-Datei, auch wenn die VERSION-Ressource der einzige lokalisierbare Inhalt ist. Standardmäßig erzeugt RC Compiler keine RES-Datei, wenn VERSION die einzige lokalisierbare Ressource ist. |
-g2 | Gibt die benutzerdefinierte Versionsnummer an, die beim Berechnen der Prüfsumme verwendet werden soll. |
mui_res_name | Ressourcendatei für sprachspezifische Ressourcen. |
rc_config_file_name | Ressourcenkonfigurationsdatei. |
langid | Sprachbezeichner. |
Version | Benutzerdefinierte Versionsnummer in einem Format wie "6.2.0.0". |
Beispiel für die Verwendung von RC Compiler zum Erstellen von MUI-Ressourcen
Um den RC Compiler-Vorgang mit MUI-Ressourcen zu veranschaulichen, untersuchen wir die folgende Befehlszeile für die Ressourcendatei Myfile.rc:
rc -fm myfile_res.res -q myfile.rcconfig myfile.rc
Diese Befehlszeile bewirkt, dass der RC-Compiler folgendes ausführen kann:
- Erstellen Sie die sprachspezifische Ressourcendatei Myfile_res.res und eine sprachneutrale Ressourcendatei, die standardmäßig auf "Myfile.res" basiert, basierend auf dem Namen der RC-Datei.
- Fügen Sie die 2 (Element 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE Ressourcentypen zur sprachspezifischen RES-Datei hinzu, wenn sie sich in der RC-Datei befinden.
- Fügen Sie den Ressourcentyp 16 zusammen mit allen anderen Ressourcentypen, die in der Ressourcendatei beschrieben sind, der sprachneutralen RES-Datei und der sprachspezifischen RES-Datei hinzu. Beachten Sie, dass in diesem Beispiel der Ressourcentyp 16 an zwei Stellen hinzugefügt wird.
- Wählen Sie den Attributwert "UltimateFallbackLanguage" aus, der in die LN-Dateiressourcenkonfigurationsdaten eingefügt werden soll, basierend auf den folgenden Kriterien, sortiert von der höchsten Priorität bis zur niedrigsten Priorität:
- "UltimateFallbackLanguage"-Attribut in der Ressourcenkonfigurationsdatei, wenn ein Attribut als Eingabe übergeben wird.
- Sprachattributwert, der in die Ressourcenkonfigurationsdaten basierend auf der RC Compiler-Sprachreihenfolge (sprachneutrale und sprachspezifische Ressourcendateisprache) eingefügt werden soll. Zu den Überlegungen gehören die Sprache in der RC-Datei, der Sprachwert des -gl Schalters und bezeichner 0x0409 für Englisch (USA).
Bemerkungen
Wenn Sie den Ressourcentyp ICON(3), DIALOG(5), STRING(6) oder VERSION(16) in das neutralResources-Element einschließen, müssen Sie diesen Eintrag im localizedResources-Element in der Ressourcenkonfigurationsdatei duplizieren.
Verwandte Themen