Utilitários de recursos
Este tópico descreve dois utilitários usados para criar aplicativos MUI. Embora o MUIRCT seja uma ferramenta específica de MUI, o MUI também usa o utilitário padrão do Compilador do Windows RC. As instruções para usar esses utilitários são fornecidas no Localizando recursos e criando o 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 recurso específicos do idioma (ou seja, localizáveis). Cada um dos arquivos resultantes contém dados de configuração de recurso para associação de arquivos. MUIRCT está incluído no SDK do Microsoft Windows para Windows Vista.
Nota
A partir do Windows Vista, o carregador de recursos Win32 é atualizado para carregar recursos de arquivos específicos do idioma, bem como de arquivos LN.
Usos de MUIRCT
Divida o binário em um arquivo binário e mui principal 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 de 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
Despejo de conteúdo de dados de configuração de recursos de input_file.
Muirct -d input_file
Sintaxe MUIRCT
O MUIRCT pode assumir a direção dos comutadores 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 e argumentos
Opção | Propósito |
---|---|
-h ou -? | Mostra a tela de ajuda. |
-c | Especifica a checksum_file de entrada da 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 delas deve ser usada 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. Essa opção só pode ser usada em conjunto com a opção -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 pelo comutador -b não puder ser encontrado no checksum_file. |
-g | Especifica a ID do idioma a ser incluída como a linguagem de fallback final na seção de dados de configuração de recurso do arquivo LN. Se o carregador de recursos não carregar um arquivo .mui solicitado dos idiomas de interface do usuário preferenciais do thread, ele usará o idioma de fallback final como sua última tentativa. O valor langID pode ser especificado no formato decimal ou hexadecimal. Por exemplo, inglês (Estados Unidos) pode ser especificado por -g 0x409 ou -g 1033. |
-q | Especifica que o source_file deve ser dividido no output_LN_file e no output_MUI_file de acordo com o layout do arquivo rc_config. O arquivo rc_config é um arquivo formatado em XML que especifica quais recursos serão extraídos para o arquivo .mui e que 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 contenha recursos em um único idioma, caso contrário, o MUIRCT falhará. O MUIRCT não dividirá o arquivo se ele for neutro em idioma, o que é indicado por ter apenas o valor da ID do idioma 0 no arquivo. O output_LN_file e output_mui_file são os nomes do arquivo .mui e neutro da linguagem 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 a source_file. Normalmente, você deve remover a extensão ".ln" antes de implantar o arquivo. O MUIRCT associa o output_LN_file e output_MUI_file calculando uma soma de verificação com base no nome 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 a opção -c, a opção -q tem precedência. Se o arquivo de rc_config fornecido com a opção -q contiver um MUIRCT de soma de verificação ignorará a opção -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 da opção -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 de recurso (tipo, nome, identificador de idioma) incluídas no arquivo .mui e no arquivo LN. O padrão é -v 1 |
-x | Especifica a ID do 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 no formato decimal ou hexadecimal. Por exemplo, inglês (Estados Unidos) pode ser especificado por -x 0x409 ou -x 1033. |
-e | Extrai a soma de verificação de recurso contida no checksum_file fornecido com a opção -c e insere-a no output_file especificado. 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 contenha 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 cálculo da soma de verificação de bases MUIRCT na entrada fornecida com a opção -c e a opção -b opcional. Se você especificar um arquivo de saída para a opção -z que não existe, o MUIRCT sairá 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 | Habilita a criação de um arquivo .mui com o recurso de versão sendo o único recurso localizável. Por padrão, MUIRCT não permite isso. |
-d | Localiza e exibe dados de configuração de recursos inseridos 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. Esse arquivo só pode conter recursos em um idioma. 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 que têm apenas o valor 0, MUIRCT não dividirá o arquivo porque um identificador de idioma de 0 indica uma linguagem neutra. 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 a ser usado como o nome do arquivo neutro do idioma. Normalmente, você deve remover a extensão ".ln" antes de implantar o arquivo.
Observação: 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, MUIRCT acrescentará uma segunda extensão ".mui" ao nome do arquivo de origem a ser usado como o nome do arquivo. Normalmente, o MUIRCT cria um arquivo de recurso específico do idioma. No entanto, ele não criará um arquivo de recurso se alguma das seguintes condições existir:
|
Saída da linguagem MUIRCT
O MUIRCT escolhe o valor do atributo "UltimateFallbackLanguage" a ser inserido nos dados de configuração de recurso de arquivo LN com base na seguinte ordem, da prioridade mais alta à mais baixa:
- Atributo "UltimateFallbackLanguage" no arquivo de configuração de recurso de origem, se um for passado como entrada.
- O idioma especificado com a opção -g.
- Idioma do arquivo de entrada.
O MUIRCT escolhe o valor do atributo "language" a ser inserido nos dados de configuração do recurso de 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 pelo comutador -x (forçar idioma).
- Idioma do arquivo de entrada.
Tratamento de 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 recurso específicos do idioma associados, e o atributo de idioma na configuração de recursos no LN e na correspondência dependente do idioma, o carregador de recursos poderá carregar recursos com êxito.
O MUIRCT dá suporte a vários métodos para colocar somas de verificação apropriadas nos dados de configuração de 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 o build das seguintes maneiras:
- Use a opção -q para especificar um valor de soma de verificação no arquivo de configuração de recurso. O MUIRCT coloca esse valor em todos os arquivos LN e arquivos de recurso específicos do idioma produzidos. Você precisa adotar uma estratégia para escolher esse valor, conforme descrito posteriormente 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 que contenha código e recursos para um único idioma. Depois disso, use MUIRCT para dividir os recursos entre o arquivo LN e o arquivo de recurso específico do idioma. Por fim, use uma ferramenta de localização binária para modificar o arquivo de recurso resultante para cada idioma.
A convenção mais comum para tratamento de soma de verificação é basear a soma de verificação nos recursos em inglês (Estados Unidos). Você é livre para adotar uma convenção diferente, desde que ela seja consistente para cada arquivo LN. Por exemplo, é perfeitamente aceitável que uma empresa de desenvolvimento de software baseie suas somas de verificação no software criado em recursos franceses (França) em vez de recursos em inglês (Estados Unidos), desde que todos os aplicativos tenham recursos franceses (França) nos quais basear as somas de verificação. Também é aceitável usar o arquivo de configuração de recurso para atribuir um valor hexadecimal arbitrário de até 16 dígitos hexadecimal como uma soma de verificação. Essa última estratégia impede o uso efetivo das opções -z, -c e -b de MUIRCT. Ele 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 exige 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 tratamento 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 -d MUIRCT para obter a soma de verificação resultante. Você pode copiar essa soma de verificação em seu arquivo de configuração de recurso 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. Se você fornece 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 recurso, 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 recurso. Além disso, se o arquivo de origem de entrada tiver recursos multilíngues, o MUIRCT não dividirá o arquivo.
Nota
Atualmente, o comportamento de MUIRCT é inconsistente quando o elemento neutralResources do arquivo de configuração de recurso 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 maneira:
- Todos os recursos no binário original (incluindo cadeias de caracteres e menus), além dos recursos mui, são colocados no arquivo LN.
- Cadeias de caracteres, menus e recursos MUI são colocados no arquivo de recurso específico do idioma apropriado.
Exemplos de como usar o 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 recurso 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 saída de arquivo de recurso Language-Specific usando de comutador de -d
Aqui está um exemplo da saída de dados de configuração de recurso 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 do compilador RC
O Compilador RC (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 recurso (extensão.res). O compilador RC está incluído no SDK do Windows. Este documento explica apenas o uso do Compilador RC com funcionalidades relacionadas a MUI do carregador de recursos. Para obter informações completas sobre o compilador, consulte About Resource Files.
O Compilador RC permite que você crie, a partir de um único conjunto de fontes, um arquivo LN e um arquivo de recurso específico do idioma separado. Quanto ao MUIRCT, os arquivos são associados por dados de configuração de recurso.
Sintaxe do compilador RC como usada para recursos mui
As opções do compilador RC são definidas em detalhes em Usando o RC. Esta seção define apenas as opções usadas para criar recursos mui. Lembre-se de que cada comutador não diferencia maiúsculas de minúsculas. Os tipos de recursos são considerados neutros em linguagem, a menos que indicados de outra forma.
rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]
opções 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 criará o arquivo se houver qualquer uma das seguintes condições:
|
-q | Usa o arquivo de configuração de recurso especificado para obter os tipos de recurso 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 recurso. 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 acabarã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 as opções -j e -k. Observação: o processo de divisão do compilador RC não funcionará corretamente se você armazenar recursos e informações de versão em arquivos de configuração de recursos diferentes. Nesse caso, o Compilador RC 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 a linguagem de fallback final identificador em hexadecimal. |
-g1 | Cria um arquivo .res mui mesmo que o recurso VERSION seja o único conteúdo localizável. Por padrão, o Compilador RC não produzirá 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 recurso. |
lângido | Identificador de idioma. |
Versão | Número de versão personalizado, em um formato como "6.2.0.0". |
Exemplo para usar o 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
Essa linha de comando faz com que o Compilador RC faça o seguinte:
- Crie o arquivo de recurso específico do idioma Myfile_res.res e um arquivo de recurso neutro de linguagem que usa como padrão Myfile.res, com base no nome do arquivo .rc.
- Adicione o 2 (item 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE tipos de recurso ao arquivo .res específico do idioma se eles estiverem no arquivo .rc.
- Adicione o tipo de recurso 16, juntamente com qualquer outro tipo de recurso descrito no arquivo de recurso ao arquivo .res neutro de linguagem 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 recurso de 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 recurso se um for passado como entrada.
- Valor do atributo de linguagem a ser inserido nos dados de configuração de recurso com base na ordem de linguagem do compilador RC (linguagem de arquivo de recurso neutro e específico do idioma). Considerações incluem idioma no arquivo .rc, valor do idioma da opção -gl e 0x0409 de identificador para inglês (Estados Unidos).
Observações
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 de recurso.
Tópicos relacionados