Compartir a través de


Utilidades de recursos

En este tema se describen dos utilidades que se usan para compilar aplicaciones MUI. Aunque MUIRCT es una herramienta específica de MUI, MUI también usa la utilidad estándar del compilador de Windows RC. Las instrucciones para usar estas utilidades se proporcionan en Localizar recursos y Compilar la aplicación.

Utilidad MUIRCT

MUIRCT (Muirct.exe) es una utilidad de línea de comandos para dividir un archivo ejecutable estándar en un archivo LN y archivos de recursos específicos del lenguaje (es decir, localizables). Cada uno de los archivos resultantes contiene datos de configuración de recursos para la asociación de archivos. MUIRCT se incluye en microsoft Windows SDK para Windows Vista.

Nota

A partir de Windows Vista, el cargador de recursos win32 se actualiza para cargar recursos desde archivos específicos del lenguaje, así como desde archivos LN.

 

Usos de MUIRCT

  1. Divida binario en archivo binario principal y mui basado en rc_config archivo.

    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]

  2. Extraiga la suma de comprobación de checksum_file e insértela en output_file.

    Muirct -c checksum_file [-b LangID] -e output_file

  3. Calcule la suma de comprobación basada en checksum_file e insértela en output_file.

    Muirct -c checksum_file [-b LangID] -q rc_config -z output_file

  4. Volcar el contenido de los datos de configuración de recursos de input_file.

    Muirct -d input_file

Sintaxis MUIRCT

MUIRCT puede tomar la dirección de los modificadores de línea de comandos o de un archivo de configuración de recursos, especificado mediante el modificador -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]

modificadores y argumentos

Opción Propósito
-h o -? Muestra la pantalla de ayuda.
-c Especifica el checksum_file de entrada desde el que se va a extraer o calcular la suma de comprobación de recursos. Checksum_file debe ser un archivo binario Win32 que contenga recursos localizables. Si checksum_file contiene recursos para más de un idioma, se debe usar el modificador -b para especificar cuál de estos se debe usar de otro modo, se produce un error en MUIRCT.
-b Especifica el idioma que se va a usar cuando el checksum_file especificado con -c contiene recursos en varios idiomas. Este modificador solo se puede usar junto con el modificador -c. El identificador de idioma puede estar en formato decimal o hexadecimal. MUIRCT produce un error si el checksum_file contiene recursos en varios idiomas y no se especifica el -b o si el idioma especificado por el modificador de -b no se encuentra en el checksum_file.
-g Especifica el identificador de idioma que se va a incluir como el idioma de reserva final en la sección de datos de configuración de recursos del archivo LN. Si el cargador de recursos no puede cargar un archivo .mui solicitado desde los idiomas preferidos de la interfaz de usuario del subproceso, usa el idioma de reserva final como último intento. El valor LangID se puede especificar en formato decimal o hexadecimal. Por ejemplo, el inglés (Estados Unidos) se puede especificar mediante -g 0x409 o -g 1033.
-q Especifica que el source_file se va a dividir en el output_LN_file y el output_MUI_file según el diseño de archivo rc_config. El archivo rc_config es un archivo con formato XML que especifica qué recursos se extraerán en el archivo .mui y que se quedarán en el archivo LN. El rc_config puede especificar la distribución de tipos de recursos y elementos con nombre individuales entre el output_LN_file y el output_MUI_file. El source_file debe ser un binario Win32 que contenga recursos en un solo idioma; de lo contrario, se produce un error en MUIRCT. MUIRCT no divide el archivo si es el idioma neutro que se indica al tener solo el valor 0 del identificador de idioma en el archivo. Los output_LN_file y output_mui_file son los nombres del archivo .mui y neutro del idioma en el que se divide el source_file. Estos nombres de archivo son opcionales. Si no se especifican, MUIRCT anexa las extensiones .ln y .mui a source_file. Normalmente, debe quitar la extensión ".ln" antes de implementar el archivo. MUIRCT asocia el output_LN_file y output_MUI_file mediante el cálculo de una suma de comprobación basada en el nombre y la versión del archivo de source_file e inserta el resultado en la sección de configuración de recursos de cada archivo de salida. Cuando se usa junto con el modificador de -c, el modificador de -q tiene prioridad. Si el archivo rc_config proporcionado con el modificador de -q contiene una MUIRCT de suma de comprobación omite el modificador de -c e inserta el valor de suma de comprobación del valor, rc_config archivo en los archivos LN y.mui. Si no se encuentra ningún valor de suma de comprobación en el rc_config, MUIRCT calcula la suma de comprobación de recursos en función del comportamiento del modificador de -c.
-v Especifica el nivel de detalle para el registro. Especifique 1 para imprimir todos los mensajes de error básicos y los resultados de la operación. Especifique 2 para incluir también la información del recurso (tipo, nombre, identificador de idioma) incluida en el archivo .mui y el archivo LN. El valor predeterminado es -v 1
-x Especifica el identificador de idioma con el que MUIRCT marca todos los tipos de recursos agregados a la sección de recursos del archivo .mui. El valor LangID se puede especificar en formato decimal o hexadecimal. Por ejemplo, el inglés (Estados Unidos) se puede especificar mediante -x 0x409 o -x 1033.
-e Extrae la suma de comprobación de recursos contenida en la checksum_file proporcionada con el modificador -c e insértela en el output_file especificado. Cuando se especifica -e, MUIRCT omite todos los modificadores que no sean el modificador de -c. En este caso, el checksum_file debe ser un archivo binario Win32 que contenga una sección de datos de configuración de recursos con un valor de suma de comprobación. El output_file debe ser un archivo LN o .mui existente.
-z Calcula e inserta datos de suma de comprobación de recursos en el archivo de salida especificado. MUIRCT basa el cálculo de suma de comprobación en la entrada proporcionada con el conmutador -c y el modificador opcional -b. Si especifica un archivo de salida para el modificador de -z que no existe, MUIRCT se cierra con un error.
Ejemplo: calcula la suma de comprobación basada en recursos localizables en Notepad.exe e inserta la suma de comprobación en el archivo de salida Notepad2.exe.
muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe
-f Habilita la creación de un archivo .mui con el recurso de versión que es el único recurso localizable. De forma predeterminada, MUIRCT no permite esto.
-d Busca y muestra los datos de configuración de recursos incrustados en el archivo de origen. Al especificar este modificador, MUIRCT omite todas las demás opciones de línea de comandos.
-m Especifica el número de versión que se va a usar al calcular la suma de comprobación para asociar el output_LN_file y output_MUI_file.
source_filename Nombre del archivo de origen binario localizado; No se pueden usar caracteres comodín. Este archivo solo puede contener recursos en un idioma. Si hay recursos en varios idiomas en el archivo, MUIRCT produce un error, a menos que se use el modificador -b. Si el archivo contiene recursos con identificadores de idioma que solo tienen el valor 0, MUIRCT no divide el archivo porque un identificador de idioma de 0 indica un idioma neutro.
Para el modificador de -d, source_filename es un archivo LN o un archivo de recursos específico del lenguaje para el que MUIRCT va a mostrar los datos de configuración de recursos.
language_neutral_filename Opcional. Nombre del archivo LN. Si no especifica el nombre de este archivo, MUIRCT anexa una segunda extensión ".ln" al nombre de archivo de origen que se usará como nombre de archivo independiente del lenguaje. Normalmente, debe quitar la extensión ".ln" antes de implementar el archivo. Nota: El archivo LN no debe contener cadenas ni menús. Debe quitarlos manualmente.
mui_filename Opcional. Nombre del archivo de recursos específico del idioma. Si no especifica un nombre, MUIRCT anexa una segunda extensión ".mui" al nombre de archivo de origen que se usará como nombre de archivo. Normalmente, MUIRCT crea un archivo de recursos específico del lenguaje. Sin embargo, no crea un archivo de recursos si existe alguna de las condiciones siguientes:
  • No hay recursos localizables en el archivo binario original.
  • El único idioma de recursos que se encuentra en el archivo binario original es el idioma neutro.
  • El archivo binario original tiene recursos para más de un idioma, sin contar el idioma neutro. Si el archivo binario contiene recursos para dos idiomas y uno de ellos es el idioma neutro, la utilidad considera que el archivo es monolingüe y crea un archivo de recursos específico del idioma si hay recursos localizables.

 

Salida del lenguaje MUIRCT

MUIRCT elige el valor del atributo "UltimateFallbackLanguage" que se va a insertar en los datos de configuración de recursos del archivo LN según el orden siguiente, de la prioridad más alta a la más baja:

  1. Atributo "UltimateFallbackLanguage" en el archivo de configuración de recursos de origen, si se pasa uno como entrada.
  2. Idioma especificado con el modificador -g.
  3. Idioma del archivo de entrada.

MUIRCT elige el valor del atributo "language" para insertar en los datos de configuración de recursos del archivo .mui según el orden siguiente:

  1. Atributo "language" en el archivo de configuración de recursos de origen, si se pasa uno como entrada.
  2. Idioma especificado por el modificador de -x (idioma forzado).
  3. Idioma del archivo de entrada.

Control de sumas de comprobación de MUIRCT

Normalmente, el sistema operativo calcula la suma de comprobación sobre los recursos específicos del idioma de un archivo a menos que especifique la suma de comprobación a través de un archivo de configuración de recursos. Siempre que la suma de comprobación sea la misma para el archivo LN y todos los archivos de recursos específicos del lenguaje asociados, y el atributo de idioma de la configuración de recursos en la coincidencia de LN y dependiente del idioma, el cargador de recursos puede cargar correctamente los recursos.

MUIRCT admite varios métodos para colocar las sumas de comprobación adecuadas en los datos de configuración de recursos:

  1. Compile un archivo ejecutable para cada lenguaje, que contenga código y recursos. Después de esto, use MUIRCT para dividir cada uno de estos archivos en un archivo LN y un archivo de recursos específico del lenguaje. MUIRCT se ejecuta varias veces, una vez para generar un archivo de recursos para cada idioma. Puede realizar la compilación de las maneras siguientes:
    1. Use el modificador -q para especificar un valor de suma de comprobación en el archivo de configuración de recursos. MUIRCT coloca este valor en todos los archivos LN y archivos de recursos específicos del lenguaje generados. Debe adoptar una estrategia para elegir este valor, como se describe más adelante en este tema.
    2. Use el modificador -c (y, opcionalmente, el modificador -b) para elegir un único idioma que tenga recursos de los que MUIRCT extrae la suma de comprobación.
    3. Use el modificador -z para elegir un único idioma que tenga recursos de los que MUIRCT extrae siempre la suma de comprobación. Aplique esta suma de comprobación después de que los archivos se hayan compilado mediante otros métodos.
  2. Cree un archivo ejecutable que contenga código y recursos para un solo lenguaje. Después de esto, use MUIRCT para dividir los recursos entre el archivo LN y el archivo de recursos específico del idioma. Por último, use una herramienta de localización binaria para modificar el archivo de recursos resultante para cada idioma.

La convención más común para el control de suma de comprobación es basar la suma de comprobación en los recursos inglés (Estados Unidos). Es libre de adoptar una convención diferente, siempre y cuando sea coherente para cada archivo LN. Por ejemplo, es perfectamente aceptable que una empresa de desarrollo de software base sus sumas de comprobación en el software que se basa en los recursos franceses (Francia) en lugar de los recursos de inglés (Estados Unidos), siempre y cuando todas las aplicaciones tengan recursos franceses (Francia) en los que basar las sumas de comprobación. También es aceptable usar el archivo de configuración de recursos para asignar un valor hexadecimal arbitrario de hasta 16 dígitos hexadecimales como suma de comprobación. Esta última estrategia impide el uso efectivo de los modificadores -z, -c y -b de MUIRCT. Requiere la adopción de un método mediante GuidGen u otra herramienta para generar valores de suma de comprobación. Esta estrategia también requiere que configure una directiva para determinar cuándo modificar el valor al agregar nuevos recursos localizables.

Para aplicar la suma de comprobación inglés (Estados Unidos) a todos los archivos, puede usar cualquiera de los métodos de control de suma de comprobación descritos anteriormente. Por ejemplo, puede generar el archivo LN y el archivo de recursos específico del idioma para inglés (Estados Unidos), después usar el modificador MUIRCT -d para obtener la suma de comprobación resultante. Puede copiar esta suma de comprobación en el archivo de configuración de recursos y usar el modificador -q con MUIRCT para aplicar la suma de comprobación a todos los demás archivos.

Uso de un archivo de configuración de recursos con MUIRCT

Puede especificar datos de configuración de recursos al usar MUIRCT. Tanto si proporciona explícitamente un archivo de configuración de recursos, cada archivo de recursos específico del lenguaje tiene datos de configuración de recursos, como cualquier archivo LN con un archivo de recursos asociado. Por ejemplo:

  • Si usa el modificador -q para especificar un archivo de configuración de recursos, pero no hay recursos localizables en el archivo de origen de entrada, no se genera ningún archivo de recursos específico del idioma y el archivo LN resultante no contiene datos de configuración de recursos. Además, si el archivo de origen de entrada tiene recursos multilingües, MUIRCT no dividirá el archivo.

Nota

Actualmente, el comportamiento de MUIRCT es incoherente cuando el elemento neutralResources del archivo de configuración de recursos no contiene elementos resourceType y el elemento localizedResources contiene cadenas y menús, por ejemplo. En tal caso, MUIRCT divide los recursos de la siguiente manera:

  • Todos los recursos del archivo binario original (incluidas las cadenas y los menús), además de los recursos MUI, se colocan en el archivo LN.
  • Las cadenas, los menús y los recursos MUI se colocan en el archivo de recursos específico del idioma adecuado.

 

Ejemplos de uso de MUIRCT

ejemplos de uso estándar

muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui

muirct -d myprog.exe.mui

ejemplo de salida de archivo LN mediante -d switch

Este es un ejemplo de la salida de datos de configuración de recursos de un archivo LN, Shell32.dll, mediante el modificador -d con 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

ejemplo de salida de archivo de recursos de Language-Specific mediante switch de -d

Este es un ejemplo de la salida de datos de configuración de recursos de un archivo .mui, Shell32.dll.mui, mediante el modificador de -d para 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

Utilidad del compilador RC

RC Compiler (Rc.exe) es una utilidad de línea de comandos para compilar un archivo de script de definición de recursos (extensión.rc) en archivos de recursos (extensión.res). El compilador RC se incluye en Windows SDK. En este documento solo se explica el uso del compilador rc con funcionalidades relacionadas con MUI del cargador de recursos. Para obtener información completa sobre el compilador, consulte Acerca de los archivos de recursos.

Rc Compiler permite compilar, a partir de un único conjunto de orígenes, un archivo LN y un archivo de recursos específico del lenguaje independiente. En cuanto a MUIRCT, los archivos están asociados a los datos de configuración de recursos.

Sintaxis del compilador RC como se usa para los recursos MUI

Los modificadores del compilador RC se definen en detalle en Uso de RC. En esta sección solo se definen los modificadores que se usan para compilar recursos MUI. Recuerde que cada modificador no distingue mayúsculas de minúsculas. Se supone que los tipos de recursos son independientes del lenguaje, a menos que se indique lo contrario.

rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]

modificadores y argumentos

Opción Función
-h o -? Muestra la pantalla de ayuda.
-Fm Usa el archivo de recursos especificado para recursos específicos del idioma. Normalmente, el compilador de recursos crea un archivo de recursos específico del lenguaje. Sin embargo, no crea el archivo si existe alguna de las condiciones siguientes:
  • No hay recursos localizables en el archivo .rc.
  • El único idioma de recursos que se encuentra en el archivo .rc es el idioma neutro.
  • El archivo .rc tiene recursos para más de un idioma, sin contar el idioma neutro. Si el archivo .rc contiene recursos para dos idiomas y uno de ellos es el lenguaje neutro, el compilador considera que el archivo es monolingüe. Si hay recursos localizables, el compilador crea un archivo de recursos específico del lenguaje.
-q Usa el archivo de configuración de recursos especificado para obtener los tipos de recursos que se van a colocar en el archivo de recursos específico del idioma y el archivo LN. Para obtener más información, consulte Preparar un archivo de configuración de recursos. Como alternativa a este modificador, puede usar los modificadores -j y -k, pero es preferible usar un archivo de configuración de recursos.
Con el modificador -q con un archivo de configuración de recursos, puede implementar una división basada en elementos y proporcionar atributos que terminarán con la configuración de recursos binarios en el archivo de recursos LN y específico del lenguaje. Esta división no es posible mediante los modificadores -j y -k. Nota: El proceso de división del compilador RC no funciona correctamente si almacena los recursos y la información de versión en archivos de configuración de recursos diferentes. En este caso, el compilador RC no divide la información de versión. Por lo tanto, se produce un error del enlazador durante la vinculación del archivo de recursos específico del idioma porque el archivo no tiene recursos de versión.
-g Especifica el último idioma de reserva identificador en hexadecimal.
-g1 Crea un archivo .res MUI incluso si el recurso VERSION es el único contenido localizable. De forma predeterminada, el compilador rc no genera un archivo .res si VERSION es el único recurso localizable.
-g2 Especifica el número de versión personalizado que se va a usar al calcular la suma de comprobación.
mui_res_name Archivo de recursos para recursos específicos del lenguaje.
rc_config_file_name Archivo de configuración de recursos.
langid Identificador de idioma.
Versión Número de versión personalizado, en un formato como "6.2.0.0".

 

Ejemplo de uso del compilador RC para compilar recursos MUI

Para ilustrar la operación del compilador RC con recursos MUI, vamos a examinar la siguiente línea de comandos para el archivo de recursos Myfile.rc:

rc -fm myfile_res.res -q myfile.rcconfig myfile.rc

Esta línea de comandos hace que el compilador rc haga lo siguiente:

  • Cree el archivo de recursos específico del idioma Myfile_res.res y un archivo de recursos independiente del idioma que tiene como valor predeterminado Myfile.res, en función del nombre del archivo .rc.
  • Agregue el 2 (elemento 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE tipos de recursos al archivo .res específico del idioma si están en el archivo .rc.
  • Agregue el tipo de recurso 16, junto con cualquier otro tipo de recurso descrito en el archivo de recursos al archivo .res independiente del idioma y al archivo .res específico del idioma. Tenga en cuenta que, en este ejemplo, se agrega el tipo de recurso 16 en dos lugares.
  • Elija el valor del atributo "UltimateFallbackLanguage" para insertarlos en los datos de configuración de recursos del archivo LN en función de los criterios siguientes, ordenados de la prioridad más alta a la más baja:
    • Atributo "UltimateFallbackLanguage" en el archivo de configuración de recursos si se pasa uno como entrada.
    • Valor de atributo de lenguaje que se va a insertar en los datos de configuración de recursos en función del orden del lenguaje del compilador RC (idioma neutro y lenguaje de archivo de recursos específico del idioma). Entre las consideraciones se incluyen el idioma en el archivo .rc, el valor de idioma del modificador de -gl e identificador 0x0409 para inglés (Estados Unidos).

Observaciones

Si incluye algún tipo de recurso ICON(3), DIALOG(5), STRING(6) o VERSION(16) en el elemento neutralResources, tendrá que duplicar esa entrada en el elemento localizedResources en el archivo de configuración de recursos.

referencia de interfaz de usuario multilingüe

de administración de recursos mui de

localizar recursos y compilar la aplicación