Utilitaires de ressources
Cette rubrique décrit deux utilitaires utilisés pour générer des applications MUI. Bien que MUIRCT soit un outil spécifique à MUI, MUI utilise également l’utilitaire de compilateur Windows RC standard. Les instructions d’utilisation de ces utilitaires sont fournies dans Localiser les ressources et générer l’application.
Utilitaire MUIRCT
MUIRCT (Muirct.exe) est un utilitaire de ligne de commande permettant de fractionner un fichier exécutable standard en fichier LN et en fichiers de ressources spécifiques au langage (autrement dit, localisables). Chacun des fichiers résultants contient des données de configuration de ressources pour l’association de fichiers. MUIRCT est inclus dans le Kit de développement logiciel (SDK) Microsoft Windows pour Windows Vista.
Note
À compter de Windows Vista, le chargeur de ressources Win32 est mis à jour pour charger des ressources à partir de fichiers spécifiques au langage, ainsi qu’à partir de fichiers LN.
Utilisations MUIRCT
Fractionnez le binaire en fichier binaire principal et mui en fonction de rc_config fichier.
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]
Extrayez la somme de contrôle de checksum_file et insérez-la dans output_file.
Muirct -c checksum_file [-b LangID] -e output_file
Calculez la somme de contrôle en fonction de checksum_file et insérez-la dans output_file.
Muirct -c checksum_file [-b LangID] -q rc_config -z output_file
Videz le contenu des données de configuration des ressources à partir de input_file.
Muirct -d input_file
Syntaxe MUIRCT
MUIRCT peut prendre direction des commutateurs de ligne de commande et/ou à partir d’un fichier de configuration de ressource, spécifié à l’aide du commutateur -q.
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]
commutateurs et arguments
Option | But |
---|---|
-h ou - ? | Affiche l’écran d’aide. |
-c | Spécifie la checksum_file d’entrée à partir de laquelle extraire ou calculer la somme de contrôle de ressource. Checksum_file doit être un fichier binaire Win32 contenant des ressources localisables. Si checksum_file contient des ressources pour plusieurs langues, le commutateur -b doit être utilisé pour spécifier lequel de ces ressources doit être utilisé dans le cas contraire, muIRCT échoue. |
-b | Spécifie la langue à utiliser lorsque le checksum_file spécifié avec -c contient des ressources dans plusieurs langues. Ce commutateur ne peut être utilisé que conjointement avec le commutateur -c. L’identificateur de langue peut être au format décimal ou hexadécimal. MUIRCT échoue si le checksum_file contient des ressources dans plusieurs langues et que le -b n’est pas spécifié ou si la langue spécifiée par le commutateur -b est introuvable dans le checksum_file. |
-g | Spécifie l’ID de langue à inclure comme langue de secours ultime dans la section données de configuration des ressources du fichier LN. Si le chargeur de ressources ne parvient pas à charger un fichier .mui demandé à partir des langues d’interface utilisateur préférées du thread, il utilise le langage de secours ultime comme dernière tentative. La valeur LangID peut être spécifiée au format décimal ou hexadécimal. Par exemple, l’anglais (États-Unis) peut être spécifié par -g 0x409 ou -g 1033. |
-q | Spécifie que le source_file doit être divisé en output_LN_file et le output_MUI_file en fonction de la disposition du fichier rc_config. Le fichier rc_config est un fichier au format XML qui spécifie les ressources qui seront extraites dans le fichier .mui et qui seront laissées dans le fichier LN. Le rc_config peut spécifier la distribution des types de ressources et des éléments nommés individuels entre le output_LN_file et le output_MUI_file. La source_file doit être un binaire Win32 qui contient des ressources dans un langage unique, sinon MUIRCT échoue. MUIRCT ne fractionne pas le fichier s’il est neutre en langue qui est indiquée en ayant uniquement la valeur d’ID de langue 0 dans le fichier. Les output_LN_file et les output_mui_file sont les noms du fichier .mui et neutre de la langue dans lequel le source_file est fractionné. Ces noms de fichiers sont facultatifs. S’ils ne sont pas spécifiés, MUIRCT ajoute les extensions .ln et .mui à source_file. En règle générale, vous devez supprimer l’extension .ln » avant de déployer le fichier. MUIRCT associe les output_LN_file et les output_MUI_file en calculant une somme de contrôle en fonction du nom et de la version de fichier source_file et en insérant le résultat dans la section configuration des ressources de chaque fichier de sortie. Lorsqu’il est utilisé conjointement avec le commutateur -c, le commutateur -q est prioritaire. Si le fichier rc_config fourni avec le commutateur -q contient une somme de contrôle MUIRCT ignore le commutateur -c et insère la valeur de somme de contrôle de la valeur, rc_config fichier dans les fichiers LN et.mui. Si aucune valeur de somme de contrôle n’est trouvée dans le rc_config, MUIRCT calcule la somme de contrôle des ressources en fonction du comportement du commutateur -c. |
-v | Spécifie le niveau de détail de la journalisation. Spécifiez 1 pour imprimer tous les messages d’erreur de base et les résultats de l’opération. Spécifiez 2 pour inclure également les informations de ressource (type, nom, identificateur de langue) incluses dans le fichier .mui et le fichier LN. La valeur par défaut est -v 1 |
-x | Spécifie l’ID de langue avec lequel MUIRCT marque tous les types de ressources ajoutés à la section de ressource du fichier .mui. La valeur LangID peut être spécifiée au format décimal ou hexadécimal. Par exemple, l’anglais (États-Unis) peut être spécifié par -x 0x409 ou -x 1033. |
-e | Extrait la somme de contrôle des ressources contenue dans la checksum_file fournie avec le commutateur -c et l’insère dans le output_file spécifié. Lorsque -e est spécifié, MUIRCT ignore tous les commutateurs autres que le commutateur -c. Dans ce cas, le checksum_file doit être un fichier binaire Win32 qui contient une section de données de configuration de ressources avec une valeur de somme de contrôle. Le output_file doit être un fichier LN existant ou un fichier .mui. |
-z | Calcule et insère des données de somme de contrôle des ressources dans le fichier de sortie spécifié. MUIRCT base le calcul de somme de contrôle sur l’entrée fournie avec le commutateur -c et le commutateur facultatif -b. Si vous spécifiez un fichier de sortie pour le commutateur -z qui n’existe pas, MUIRCT se termine par un échec. Exemple : calcule la somme de contrôle en fonction des ressources localisables dans Notepad.exe et insère la somme de contrôle dans le fichier de sortie Notepad2.exe. muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe |
-f | Permet de créer un fichier .mui avec la ressource de version étant la seule ressource localisable. Par défaut, MUIRCT n’autorise pas cela. |
-d | Recherche et affiche les données de configuration des ressources incorporées dans le fichier source. Lorsque vous spécifiez ce commutateur, MUIRCT ignore toutes les autres options de ligne de commande. |
-m | Spécifie le numéro de version à utiliser lors du calcul de la somme de contrôle pour l’association des output_LN_file et des output_MUI_file. |
source_filename | Nom du fichier source binaire localisé ; Les caractères génériques ne peuvent pas être utilisés. Ce fichier ne peut contenir que des ressources dans une seule langue. S’il existe des ressources dans plusieurs langues dans le fichier, MUIRCT échoue, sauf si le commutateur -b est utilisé. Si le fichier contient des ressources avec des identificateurs de langue ayant la valeur 0 uniquement, MUIRCT ne fractionne pas le fichier, car un identificateur de langue de 0 indique une langue neutre. Pour le commutateur -d, source_filename est un fichier LN ou un fichier de ressources spécifique au langage pour lequel MUIRCT doit afficher les données de configuration des ressources. |
language_neutral_filename | Optionnel. Nom du fichier LN. Si vous ne spécifiez pas le nom de ce fichier, MUIRCT ajoute une deuxième extension .ln » au nom de fichier source à utiliser comme nom de fichier neutre en langue. En règle générale, vous devez supprimer l’extension .ln » avant de déployer le fichier.
Remarque : le fichier LN ne doit pas contenir de chaînes ou de menus. Vous devez les supprimer manuellement. |
mui_filename | Optionnel. Nom du fichier de ressources spécifique au langage. Si vous ne spécifiez pas de nom, MUIRCT ajoute une deuxième extension .mui » au nom de fichier source à utiliser comme nom de fichier. Normalement, MUIRCT crée un fichier de ressources spécifique au langage. Toutefois, il ne crée pas de fichier de ressources si l’une des conditions suivantes existe :
|
Sortie du langage MUIRCT
MUIRCT choisit la valeur d’attribut « UltimateFallbackLanguage » à insérer dans les données de configuration des ressources de fichier LN en fonction de l’ordre suivant, de la priorité la plus élevée au plus bas :
- Attribut « UltimateFallbackLanguage » dans le fichier de configuration de ressource source, s’il est passé en tant qu’entrée.
- Langue spécifiée avec le commutateur -g.
- Langue du fichier d’entrée.
MUIRCT sélectionne la valeur d’attribut « language » à insérer dans les données de configuration des ressources du fichier .mui en fonction de l’ordre suivant :
- Attribut « language » dans le fichier de configuration de ressource source, s’il est passé en tant qu’entrée.
- Langue spécifiée par le commutateur -x (langue de force).
- Langue du fichier d’entrée.
Gestion de la somme de contrôle MUIRCT
Le système d’exploitation calcule normalement la somme de contrôle sur les ressources spécifiques à la langue dans un fichier, sauf si vous spécifiez la somme de contrôle via un fichier de configuration de ressource. Tant que la somme de contrôle est la même pour le fichier LN et tous les fichiers de ressources spécifiques à la langue associés, ainsi que l’attribut de langue dans la configuration de la ressource dans la correspondance dépendante du langage et du nom local, le chargeur de ressources peut charger correctement les ressources.
MUIRCT prend en charge plusieurs méthodes pour placer les sommes de contrôle appropriées dans les données de configuration des ressources :
- Générez un exécutable pour chaque langage, contenant à la fois du code et des ressources. Après cela, utilisez MUIRCT pour fractionner chacun de ces fichiers en fichier LN et un fichier de ressources spécifique au langage. MUIRCT s’exécute plusieurs fois, une fois pour générer un fichier de ressources pour chaque langue. Vous pouvez effectuer la build de la manière suivante :
- Utilisez le commutateur -q pour spécifier une valeur de somme de contrôle dans le fichier de configuration de ressource. MUIRCT place cette valeur dans tous les fichiers LN et les fichiers de ressources spécifiques au langage générés. Vous devez adopter une stratégie pour choisir cette valeur, comme décrit plus loin dans cette rubrique.
- Utilisez le commutateur -c (et, éventuellement, le commutateur -b) pour choisir une seule langue contenant des ressources à partir de laquelle MUIRCT extrait la somme de contrôle.
- Utilisez le commutateur -z pour choisir une seule langue à partir de laquelle MUIRCT extrait toujours la somme de contrôle. Appliquez cette somme de contrôle une fois les fichiers générés à l’aide d’autres méthodes.
- Générez un exécutable contenant à la fois du code et des ressources pour une seule langue. Ensuite, utilisez MUIRCT pour fractionner les ressources entre le fichier LN et le fichier de ressources spécifique à la langue. Enfin, utilisez un outil de localisation binaire pour modifier le fichier de ressources résultant pour chaque langue.
La convention la plus courante pour la gestion de la somme de contrôle consiste à baser la somme de contrôle sur les ressources anglaises (États-Unis). Vous êtes libre d’adopter une convention différente, tant qu’elle est cohérente pour chaque fichier LN. Par exemple, il est parfaitement acceptable pour une entreprise de développement de logiciels de baser ses sommes de contrôle dans le logiciel qu’elle s’appuie sur les ressources françaises (France) au lieu des ressources anglaises (États-Unis), tant que toutes les applications ont des ressources françaises (France) sur lesquelles baser les sommes de contrôle. Il est également acceptable d’utiliser le fichier de configuration des ressources pour affecter une valeur hexadécimale arbitraire allant jusqu’à 16 chiffres hexadécimaux en tant que somme de contrôle. Cette dernière stratégie empêche l’utilisation efficace des commutateurs -z, -c et -b de MUIRCT. Il nécessite l’adoption d’une méthode à l’aide de GuidGen ou d’un autre outil pour générer des valeurs de somme de contrôle. Cette stratégie vous oblige également à configurer une stratégie pour déterminer quand modifier la valeur lors de l’ajout de nouvelles ressources localisables.
Pour appliquer la somme de contrôle anglais (États-Unis) à tous les fichiers, vous pouvez utiliser l’une des méthodes de gestion de somme de contrôle décrites ci-dessus. Par exemple, vous pouvez générer le fichier LN et le fichier de ressources spécifique à la langue pour l’anglais (États-Unis), puis utiliser le commutateur MUIRCT -d pour obtenir la somme de contrôle résultante. Vous pouvez copier cette somme de contrôle dans votre fichier de configuration de ressource et utiliser le commutateur -q avec MUIRCT pour appliquer la somme de contrôle à tous les autres fichiers.
Utilisation d’un fichier de configuration de ressources avec MUIRCT
Vous pouvez spécifier des données de configuration de ressources lors de l’utilisation de MUIRCT. Que vous fournissez ou non explicitement un fichier de configuration de ressource, chaque fichier de ressources spécifique au langage possède des données de configuration de ressources, comme n’importe quel fichier LN avec un fichier de ressources associé. Par exemple:
- Si vous utilisez le commutateur -q pour spécifier un fichier de configuration de ressource, mais qu’il n’existe aucune ressource localisable dans votre fichier source d’entrée, aucun fichier de ressources spécifique au langage n’est généré et le fichier LN résultant ne contient pas de données de configuration des ressources. En outre, si le fichier source d’entrée a des ressources multilingues, MUIRCT ne fractionne pas le fichier.
Note
Actuellement, le comportement de MUIRCT est incohérent lorsque l’élément neutralResources du fichier de configuration de ressource ne contient aucun élément resourceType et que l’élément localizedResources contient des chaînes et des menus, par exemple. Dans ce cas, MUIRCT fractionne les ressources comme suit :
- Toutes les ressources du fichier binaire d’origine (y compris les chaînes et les menus), ainsi que les ressources MUI, sont placées dans le fichier LN.
- Les chaînes, les menus et les ressources MUI sont placées dans le fichier de ressources spécifique à la langue approprié.
Exemples d’utilisation de MUIRCT
exemples de d’utilisation standard
muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui
muirct -d myprog.exe.mui
exemple de sortie de fichier LN à l’aide du commutateur -d
Voici un exemple de sortie des données de configuration des ressources à partir d’un fichier LN, Shell32.dll, à l’aide du commutateur -d avec 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
exemple de sortie de fichier de ressources Language-Specific à l’aide du commutateur -d
Voici un exemple de sortie des données de configuration des ressources à partir d’un fichier .mui, Shell32.dll.mui, à l’aide du commutateur -d pour 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
Utilitaire de compilateur RC
Le compilateur RC (Rc.exe) est un utilitaire de ligne de commande pour compiler un fichier de script de définition de ressource (extension.rc) dans des fichiers de ressources (extension.res). Le compilateur RC est inclus dans le Kit de développement logiciel (SDK) Windows. Ce document explique uniquement l’utilisation du compilateur RC avec des fonctionnalités liées à l’I MUI du chargeur de ressources. Pour plus d’informations sur le compilateur, consultez À propos des fichiers de ressources.
Le compilateur RC vous permet de générer, à partir d’un ensemble unique de sources, d’un fichier LN et d’un fichier de ressources spécifique au langage distinct. Comme pour MUIRCT, les fichiers sont associés aux données de configuration des ressources.
Syntaxe du compilateur RC utilisée pour les ressources MUI
Les commutateurs du compilateur RC sont définis en détail dans Utilisation de RC. Cette section définit uniquement les commutateurs utilisés pour générer des ressources MUI. N’oubliez pas que chaque commutateur ne respecte pas la casse. Les types de ressources sont supposés être neutres en langue, sauf indication contraire.
rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]
commutateurs et arguments
Option | Fonction |
---|---|
-h ou - ? | Affiche l’écran d’aide. |
-Fm | Utilise le fichier de ressources spécifié pour les ressources spécifiques à la langue. Normalement, le compilateur de ressources crée un fichier de ressources spécifique au langage. Toutefois, il ne crée pas le fichier si l’une des conditions suivantes existe :
|
-q | Utilise le fichier de configuration de ressource spécifié pour obtenir les types de ressources à placer dans le fichier de ressources spécifique au langage et dans le fichier LN. Pour plus d’informations, consultez Préparation d’un fichier de configuration de ressources. En guise d’alternative à ce commutateur, vous pouvez utiliser les commutateurs -j et -k, mais il est préférable d’utiliser un fichier de configuration de ressources. En utilisant le commutateur -q avec un fichier de configuration de ressource, vous pouvez implémenter un fractionnement basé sur des éléments et fournir des attributs qui finissent par la configuration des ressources binaires dans le fichier de ressources spécifique au langage et LN. Ce fractionnement n’est pas possible à l’aide des commutateurs -j et -k. Remarque : le processus de fractionnement du compilateur RC ne fonctionne pas correctement si vous stockez des ressources et des informations de version dans différents fichiers de configuration de ressources. Dans ce cas, le compilateur RC ne fractionne pas les informations de version. Par conséquent, une erreur d’éditeur de liens se produit lors de la liaison du fichier de ressources spécifique à la langue, car le fichier n’a pas de ressources de version. |
-g | Spécifie le langage de secours ultime identificateur en hexadécimal. |
-g1 | Crée un fichier .res MUI même si la ressource VERSION est le seul contenu localisable. Par défaut, le compilateur RC ne produit pas de fichier .res si VERSION est la seule ressource localisable. |
-g2 | Spécifie le numéro de version personnalisé à utiliser lors du calcul de la somme de contrôle. |
mui_res_name | Fichier de ressources pour les ressources spécifiques à la langue. |
rc_config_file_name | Fichier de configuration des ressources. |
langid | Identificateur de langue. |
Version | Numéro de version personnalisé, dans un format tel que « 6.2.0.0 ». |
Exemple d’utilisation du compilateur RC pour générer des ressources MUI
Pour illustrer l’opération du compilateur RC avec des ressources MUI, examinons la ligne de commande suivante pour le fichier de ressources Myfile.rc :
rc -fm myfile_res.res -q myfile.rcconfig myfile.rc
Cette ligne de commande entraîne le compilateur RC à effectuer les opérations suivantes :
- Créez le fichier de ressources spécifique à la langue Myfile_res.res et un fichier de ressources neutre en langage qui est défini par défaut sur Myfile.res, en fonction du nom du fichier .rc.
- Ajoutez les 2 (élément 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE au fichier .res propre à la langue s’ils se trouvent dans le fichier .rc.
- Ajoutez le type de ressource 16, ainsi que tous les autres types de ressources décrits dans le fichier de ressources au fichier .res neutre en langage et au fichier .res propre à la langue. Notez que, dans cet exemple, le type de ressource 16 est ajouté à deux emplacements.
- Choisissez la valeur d’attribut « UltimateFallbackLanguage » à insérer dans les données de configuration des ressources du fichier LN en fonction des critères suivants, classés de priorité la plus élevée au plus bas :
- Attribut « UltimateFallbackLanguage » dans le fichier de configuration des ressources si un attribut est passé en tant qu’entrée.
- Valeur de l’attribut de langue à insérer dans les données de configuration des ressources en fonction de l’ordre de langue du compilateur RC (langue neutre et langue spécifique au fichier de ressources). Les considérations incluent la langue dans le fichier .rc, la valeur de langue du commutateur -gl et l’identificateur 0x0409 pour l’anglais (États-Unis).
Remarques
Si vous incluez un type de ressource ICON(3), DIALOG(5), STRING(6) ou VERSION(16) dans l’élément neutralResources, vous devez dupliquer cette entrée dans l’élément localizedResources dans le fichier de configuration des ressources.
Rubriques connexes