Utilitários de recursos
Este tópico descreve dois utilitários usados para criar aplicativos MUI. Enquanto MUIRCT é uma ferramenta específica do MUI, MUI também faz uso do utilitário padrão Windows RC Compiler. As instruções para usar esses utilitários são fornecidas em Localização de Recursos e Criação do Aplicativo.
Utilitário MUIRCT
MUIRCT (Muirct.exe) é um utilitário de linha de comando para dividir um arquivo executável padrão em um arquivo LN e arquivos de recursos específicos do idioma (ou seja, localizáveis). Cada um dos arquivos resultantes contém dados de configuração de recursos para associação de arquivos. MUIRCT está incluído no SDK do Microsoft Windows para Windows Vista.
Observação
A partir do Windows Vista, o carregador de recursos do Win32 é atualizado para carregar recursos de arquivos específicos do idioma, bem como de arquivos LN.
Usos do MUIRCT
Dividir binário em binário principal e arquivo mui com base em rc_config arquivo.
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]
Extraia a soma de verificação do checksum_file e insira-a no output_file.
Muirct -c checksum_file [-b LangID] -e output_file
Calcule a soma de verificação com base em checksum_file e insira-a no output_file.
Muirct -c checksum_file [-b LangID] -q rc_config -z output_file
Despeje o conteúdo de dados de configuração de recursos do input_file.
Muirct -d input_file
Sintaxe MUIRCT
O MUIRCT pode tomar a direção de opções de linha de comando e/ou de um arquivo de configuração de recurso, especificado usando a opção -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]
Opções de e argumentos
Opção | Finalidade |
---|---|
-h ou -? | Mostra a tela de ajuda. |
-c | Especifica o checksum_file de entrada do qual extrair ou calcular a soma de verificação do recurso. Checksum_file deve ser um arquivo binário Win32 contendo recursos localizáveis. Se checksum_file contiver recursos para mais de um idioma, a opção -b deverá ser usada para especificar qual deles deve ser usado, caso contrário o MUIRCT falhará. |
-b | Especifica o idioma a ser usado quando o checksum_file especificado com -c contém recursos em vários idiomas. Este interruptor só pode ser utilizado em conjunto com o comutador -c. O identificador de idioma pode estar em formato decimal ou hexadecimal. O MUIRCT falhará se o checksum_file contiver recursos em vários idiomas e o -b não for especificado ou se o idioma especificado pela opção -b não puder ser encontrado no checksum_file. |
-g | Especifica o ID de idioma a ser incluído como o idioma de fallback final na seção de dados de configuração de recursos do arquivo LN. Se o carregador de recursos não conseguir carregar um arquivo .mui solicitado dos idiomas de interface do usuário preferidos do thread, ele usará o idioma de fallback final como sua última tentativa. O valor LangID pode ser especificado em formato decimal ou hexadecimal. Por exemplo, o inglês (Estados Unidos) pode ser especificado pela -g 0x409 ou -g 1033. |
-q | Especifica que o source_file deve ser dividido em output_LN_file e output_MUI_file de acordo com o layout do arquivo rc_config. O arquivo rc_config é um arquivo formatado XML que especifica quais recursos serão extraídos para o arquivo .mui e quais serão deixados no arquivo LN. O rc_config pode especificar a distribuição de tipos de recursos e itens nomeados individuais entre o output_LN_file e o output_MUI_file. O source_file deve ser um binário Win32 que contém recursos em um único idioma, caso contrário, o MUIRCT falhará. O MUIRCT não divide o ficheiro se este for neutro em termos de linguagem, o que é indicado por ter apenas o valor de ID de idioma 0 no ficheiro. Os output_LN_file e output_mui_file são os nomes do idioma neutro e do arquivo .mui no qual o source_file é dividido. Esses nomes de arquivo são opcionais. Se eles não forem especificados, o MUIRCT acrescentará as extensões .ln e .mui ao source_file. Normalmente, você deve remover a extensão ".ln" antes de implantar o arquivo. O MUIRCT associa o output_LN_file e o output_MUI_file calculando uma soma de verificação com base no nome do source_file e na versão do arquivo e inserindo o resultado na seção de configuração de recursos de cada arquivo de saída. Quando usado em conjunto com o interruptor -c, o interruptor -q tem precedência. Se o arquivo rc_config fornecido com a opção -q contiver uma soma de verificação, o MUIRCT ignorará a opção de -c e inserirá o valor da soma de verificação do valor, rc_config arquivo nos arquivos LN e .mui. Se nenhum valor de soma de verificação for encontrado no rc_config, o MUIRCT calculará a soma de verificação de recursos com base no comportamento do switch -c. |
-v | Especifica o nível de detalhamento para registro em log. Especifique 1 para imprimir todas as mensagens de erro básicas e os resultados da operação. Especifique 2 para incluir também as informações do recurso (tipo, nome, identificador de idioma) incluídas no arquivo .mui e no arquivo LN. O padrão é -v 1 |
-x | Especifica a ID de idioma com a qual o MUIRCT marca todos os tipos de recursos adicionados à seção de recursos do arquivo .mui. O valor LangID pode ser especificado em formato decimal ou hexadecimal. Por exemplo, o inglês (Estados Unidos) pode ser especificado pela -x 0x409 ou -x 1033. |
-e | Extrai a soma de verificação de recursos contida no checksum_file fornecido com a opção -c e a insere na output_file especificada. Quando -e é especificado, o MUIRCT ignora todas as opções diferentes da opção -c. Nesse caso, o checksum_file deve ser um arquivo binário Win32 que contém uma seção de dados de configuração de recurso com um valor de soma de verificação. O output_file deve ser um arquivo LN existente ou um arquivo .mui. |
-z | Calcula e insere dados de soma de verificação de recursos no arquivo de saída especificado. O MUIRCT baseia o cálculo da soma de verificação na entrada fornecida com o comutador -c e o comutador -b opcional. Se você especificar um arquivo de saída para a opção -z que não existe, o MUIRCT será encerrado com uma falha. Exemplo: calcula a soma de verificação com base em recursos localizáveis no Notepad.exe e insere a soma de verificação no arquivo de saída Notepad2.exe. muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe |
-f | Permite a criação de um arquivo .mui com o recurso de versão sendo o único recurso localizável. Por padrão, o MUIRCT não permite isso. |
-d | Localiza e exibe dados de configuração de recursos incorporados no arquivo de origem. Quando você especifica essa opção, o MUIRCT ignora todas as outras opções de linha de comando. |
-m | Especifica o número de versão a ser usado ao calcular a soma de verificação para associar o output_LN_file e o output_MUI_file. |
source_filename | Nome do arquivo de origem binário localizado; curingas não podem ser usados. Este ficheiro só pode conter recursos numa língua. Se houver recursos em vários idiomas no arquivo, o MUIRCT falhará, a menos que a opção -b seja usada. Se o arquivo contiver recursos com identificadores de idioma com valor 0 apenas, o MUIRCT não dividirá o arquivo porque um identificador de idioma de 0 indica um idioma neutro. Para a opção -d, source_filename é um arquivo LN ou um arquivo de recurso específico do idioma para o qual o MUIRCT deve exibir dados de configuração de recursos. |
language_neutral_filename | Opcional. Nome do arquivo LN. Se você não especificar o nome desse arquivo, o MUIRCT acrescentará uma segunda extensão ".ln" ao nome do arquivo de origem para usar como o nome de arquivo neutro em termos de idioma. Normalmente, você deve remover a extensão ".ln" antes de implantar o arquivo.
Nota: O arquivo LN não deve conter cadeias de caracteres ou menus. Você deve removê-los manualmente. |
mui_filename | Opcional. Nome do arquivo de recurso específico do idioma. Se você não especificar um nome, o MUIRCT acrescentará uma segunda extensão ".mui" ao nome do arquivo de origem para usar como o nome do arquivo. Normalmente, o MUIRCT cria um arquivo de recurso específico do idioma. No entanto, ele não cria um arquivo de recurso se qualquer uma das seguintes condições existir:
|
Saída de idioma MUIRCT
O MUIRCT escolhe o valor do atributo "UltimateFallbackLanguage" para inserir nos dados de configuração de recursos do arquivo LN com base na seguinte ordem, da prioridade mais alta à mais baixa:
- Atributo "UltimateFallbackLanguage" no arquivo de configuração do recurso de origem, se um for passado como entrada.
- O idioma especificado com a opção -g.
- Idioma do arquivo de entrada.
O MUIRCT seleciona o valor do atributo "language" para inserir nos dados de configuração de recursos do arquivo .mui com base na seguinte ordem:
- atributo "language" no arquivo de configuração do recurso de origem, se um for passado como entrada.
- O idioma especificado pela opção -x (force language).
- Idioma do arquivo de entrada.
Tratamento da soma de verificação MUIRCT
O sistema operacional normalmente calcula a soma de verificação sobre os recursos específicos do idioma em um arquivo, a menos que você especifique a soma de verificação por meio de um arquivo de configuração de recurso. Desde que a soma de verificação seja a mesma para o arquivo LN e todos os arquivos de recursos específicos do idioma associados, e o atributo language na configuração do recurso na correspondência LN e dependente de idioma, o carregador de recursos pode carregar recursos com êxito.
O MUIRCT suporta vários métodos para colocar somas de verificação apropriadas nos dados de configuração do recurso:
- Crie um executável para cada idioma, contendo código e recursos. Depois disso, use MUIRCT para dividir cada um desses arquivos em um arquivo LN e um arquivo de recurso específico do idioma. O MUIRCT é executado várias vezes, uma vez para gerar um arquivo de recurso para cada idioma. Você pode executar a compilação das seguintes maneiras:
- Use a opção -q para especificar um valor de soma de verificação no arquivo de configuração do recurso. O MUIRCT coloca esse valor em todos os arquivos LN e arquivos de recursos específicos do idioma produzidos. Você precisa adotar uma estratégia para escolher esse valor, conforme descrito mais adiante neste tópico.
- Use a opção -c (e, opcionalmente, a opção -b) para escolher um único idioma com recursos dos quais o MUIRCT extrai a soma de verificação.
- Use a opção -z para escolher um único idioma com recursos dos quais o MUIRCT sempre extrai a soma de verificação. Aplique essa soma de verificação depois que os arquivos tiverem sido criados usando outros métodos.
- Crie um executável contendo código e recursos para uma única linguagem. Depois disso, use MUIRCT para dividir os recursos entre o arquivo LN e o arquivo de recurso específico do idioma. Finalmente, use uma ferramenta de localização binária para modificar o arquivo de recurso resultante para cada idioma.
A convenção mais comum para o tratamento da soma de verificação é basear a soma de verificação nos recursos ingleses (Estados Unidos). Você é livre para adotar uma convenção diferente, desde que seja consistente para cada arquivo LN. Por exemplo, é perfeitamente aceitável que uma empresa de desenvolvimento de software baseie as suas somas de verificação no software que baseia em recursos franceses (França) em vez de recursos ingleses (Estados Unidos), desde que todas as aplicações tenham recursos franceses (França) nos quais basear as somas de verificação. Também é aceitável usar o arquivo de configuração de recursos para atribuir um valor hexadecimal arbitrário de até 16 dígitos hexadecimais como uma soma de verificação. Esta última estratégia impede o uso efetivo dos switches -z, -c e -b do MUIRCT. Requer a adoção de um método usando GuidGen ou alguma outra ferramenta para gerar valores de soma de verificação. Essa estratégia também requer que você configure uma política para determinar quando modificar o valor ao adicionar novos recursos localizáveis.
Para aplicar a soma de verificação em inglês (Estados Unidos) a todos os arquivos, você pode usar qualquer um dos métodos de manipulação de soma de verificação descritos acima. Por exemplo, você pode gerar o arquivo LN e o arquivo de recurso específico do idioma para inglês (Estados Unidos) e, em seguida, usar a opção MUIRCT -d para obter a soma de verificação resultante. Você pode copiar essa soma de verificação em seu arquivo de configuração de recursos e usar a opção -q com MUIRCT para aplicar a soma de verificação a todos os outros arquivos.
Uso de um arquivo de configuração de recurso com MUIRCT
Você pode especificar dados de configuração de recursos ao usar o MUIRCT. Quer você forneça ou não explicitamente um arquivo de configuração de recurso, cada arquivo de recurso específico do idioma tem dados de configuração de recursos, assim como qualquer arquivo LN com um arquivo de recurso associado. Por exemplo:
- Se você usar a opção -q para especificar um arquivo de configuração de recurso, mas não houver recursos localizáveis no arquivo de origem de entrada, nenhum arquivo de recurso específico do idioma será gerado e o arquivo LN resultante não conterá dados de configuração de recursos. Além disso, se o arquivo de origem de entrada tiver recursos multilíngues, o MUIRCT não dividirá o arquivo.
Observação
Atualmente, o comportamento do MUIRCT é inconsistente quando o elemento neutralResources do arquivo de configuração de recursos não contém elementos resourceType e o elemento localizedResources contém cadeias de caracteres e menus, por exemplo. Nesse caso, o MUIRCT divide os recursos da seguinte forma:
- Todos os recursos no binário original (incluindo strings e menus), mais os recursos MUI, são colocados no arquivo LN.
- Strings, menus e recursos MUI são colocados no arquivo de recurso específico do idioma apropriado.
Exemplos de utilização do MUIRCT
exemplos de de uso padrão
muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui
muirct -d myprog.exe.mui
exemplo de saída de arquivo LN usando -d switch
Aqui está um exemplo da saída de dados de configuração de recursos de um arquivo LN, Shell32.dll, usando a opção -d com 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
exemplo de Language-Specific saída de arquivo de recurso usando -d switch
Aqui está um exemplo da saída de dados de configuração de recursos de um arquivo .mui, Shell32.dll.mui, usando a opção -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
Utilitário de compilador RC
RC Compiler (Rc.exe) é um utilitário de linha de comando para compilar um arquivo de script de definição de recurso (extensão .rc) em arquivos de recursos (extensão .res). RC Compiler está incluído no Windows SDK. Este documento explica apenas o uso do RC Compiler com recursos relacionados ao MUI do carregador de recursos. Para obter informações completas sobre o compilador, consulte Sobre arquivos de recursos.
RC Compiler permite que você construa, a partir de um único conjunto de fontes, um arquivo LN e um arquivo de recurso separado específico do idioma. Quanto ao MUIRCT, os arquivos são associados por dados de configuração de recursos.
Sintaxe do compilador RC como usada para recursos MUI
As opções do compilador RC são definidas em detalhes em Usando RC. Esta seção define apenas as opções usadas para criar recursos MUI. Lembre-se de que cada switch não diferencia maiúsculas de minúsculas. Presume-se que os tipos de recursos são neutros em termos de linguagem, salvo indicação em contrário.
rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]
Opções de e argumentos
Opção | Função |
---|---|
-h ou -? | Mostra a tela de ajuda. |
-FM | Usa o arquivo de recurso especificado para recursos específicos do idioma. Normalmente, o compilador de recursos cria um arquivo de recurso específico do idioma. No entanto, ele não cria o arquivo se qualquer uma das seguintes condições existir:
|
-q | Usa o arquivo de configuração de recurso especificado para obter os tipos de recursos a serem colocados no arquivo de recurso específico do idioma e no arquivo LN. Para obter mais informações, consulte Preparando um arquivo de configuração de recursos. Como alternativa a essa opção, você pode usar as opções -j e -k, mas é preferível usar um arquivo de configuração de recurso. Usando a opção -q com um arquivo de configuração de recurso, você pode implementar uma divisão baseada em item e fornecer atributos que terminarão com a configuração de recurso binário no LN e no arquivo de recurso específico do idioma. Essa divisão não é possível usando os switches -j e -k. Nota: O processo de divisão do compilador RC não funciona corretamente se você armazenar recursos e informações de versão em diferentes arquivos de configuração de recursos. Neste caso, RC Compiler não divide as informações de versão. Portanto, ocorre um erro de vinculador durante a vinculação do arquivo de recurso específico do idioma porque o arquivo não tem recursos de versão. |
-g | Especifica o identificador de de idioma fallback final em hexadecimal. |
-g1 | Cria um arquivo .res MUI mesmo que o recurso VERSION seja o único conteúdo localizável. Por padrão, o RC Compiler não produz um arquivo .res se VERSION for o único recurso localizável. |
-g2 | Especifica o número de versão personalizado a ser usado ao calcular a soma de verificação. |
mui_res_name | Arquivo de recurso para recursos específicos do idioma. |
rc_config_file_name | Arquivo de configuração de recursos. |
Langid | Identificador de idioma. |
Versão | Número de versão personalizado, num formato como "6.2.0.0". |
Exemplo de uso do compilador RC para criar recursos MUI
Para ilustrar a operação do Compilador RC com recursos MUI, vamos examinar a seguinte linha de comando, para o arquivo de recurso Myfile.rc:
rc -fm myfile_res.res -q myfile.rcconfig myfile.rc
Esta linha de comandos faz com que o RC Compiler faça o seguinte:
- Crie o arquivo de recurso específico do idioma Myfile_res.res e um arquivo de recurso com neutralidade de idioma que assume como padrão Myfile.res, com base no nome do arquivo .rc.
- Adicione os 2 (item 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE tipos de recursos ao arquivo .res específico do idioma se estiverem no arquivo .rc.
- Adicione o tipo de recurso 16, juntamente com quaisquer outros tipos de recursos descritos no arquivo de recurso, ao arquivo .res com neutralidade de idioma e ao arquivo .res específico do idioma. Observe que, neste exemplo, o tipo de recurso 16 está sendo adicionado em dois locais.
- Escolha o valor do atributo "UltimateFallbackLanguage" para inserir nos dados de configuração de recursos do arquivo LN com base nos seguintes critérios, ordenados da prioridade mais alta para a mais baixa:
- Atributo "UltimateFallbackLanguage" no arquivo de configuração de recursos se um for passado como entrada.
- Valor do atributo de idioma a ser inserido nos dados de configuração do recurso com base na ordem de idioma do Compilador RC (idioma neutro e idioma específico do arquivo de recurso). As considerações incluem idioma no arquivo .rc, valor de idioma da opção -gl e 0x0409 identificador para inglês (Estados Unidos).
Comentários
Se você incluir qualquer tipo de recurso ICON(3), DIALOG(5), STRING(6) ou VERSION(16) no elemento neutralResources, será necessário duplicar essa entrada no elemento localizedResources no arquivo de configuração do recurso.
Tópicos relacionados