Utilità risorse
In questo argomento vengono descritte due utilità usate per compilare applicazioni MUI. Mentre MUIRCT è uno strumento specifico di MUI, MUI usa anche l'utilità standard del compilatore Windows RC. Le istruzioni per l'uso di queste utilità sono disponibili in Localizzazione delle risorse e creazione dell'applicazione.
Utilità MUIRCT
MUIRCT (Muirct.exe) è un'utilità della riga di comando per suddividere un file eseguibile standard in un file LN e in file di risorse specifici della lingua (ovvero localizzabili). Ognuno dei file risultanti contiene i dati di configurazione delle risorse per l'associazione di file. MUIRCT è incluso in Microsoft Windows SDK per Windows Vista.
Nota
A partire da Windows Vista, il caricatore di risorse Win32 viene aggiornato per caricare le risorse da file specifici della lingua e dai file LN.
Utilizzi MUIRCT
Dividere il file binario in file binario principale e mui in base al file rc_config.
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]
Estrarre il checksum da checksum_file e inserirlo in output_file.
Muirct -c checksum_file [-b LangID] -e output_file
Calcolare il checksum in base checksum_file e inserirlo in output_file.
Muirct -c checksum_file [-b LangID] -q rc_config -z output_file
Eseguire il dump del contenuto dei dati di configurazione delle risorse da input_file.
Muirct -d input_file
Sintassi MUIRCT
MUIRCT può prendere la direzione dalle opzioni della riga di comando e/o da un file di configurazione delle risorse, specificato usando l'opzione -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]
opzioni e argomenti
Opzione | Scopo |
---|---|
-h o -? | Visualizza la schermata della Guida. |
-c | Specifica il checksum_file di input da cui estrarre o calcolare il checksum della risorsa. Checksum_file deve essere un file binario Win32 contenente risorse localizzabili. Se checksum_file contiene risorse per più lingue, è necessario utilizzare l'opzione -b per specificare quale di queste deve essere usata altrimenti MUIRCT ha esito negativo. |
-b | Specifica la lingua da utilizzare quando il checksum_file specificato con -c contiene risorse in più lingue. Questa opzione può essere usata solo insieme all'opzione -c. L'identificatore di lingua può essere in formato decimale o esadecimale. MUIRCT ha esito negativo se il checksum_file contiene risorse in più lingue e il -b non è specificato o se la lingua specificata dall'opzione -b non è disponibile nella checksum_file. |
-g | Specifica l'ID lingua da includere come lingua di fallback finale nella sezione dei dati di configurazione delle risorse del file LN. Se il caricatore di risorse non riesce a caricare un file mui richiesto dalle lingue preferite dell'interfaccia utente del thread, usa la lingua di fallback finale come ultimo tentativo. Il valore LangID può essere specificato in formato decimale o esadecimale. Ad esempio, l'inglese (Stati Uniti) può essere specificato da -g 0x409 o -g 1033. |
-q | Specifica che il source_file deve essere suddiviso nel output_LN_file e nel output_MUI_file in base al layout del file rc_config. Il file rc_config è un file in formato XML che specifica quali risorse verranno estratte nel file mui e che verranno lasciate nel file LN. Il rc_config può specificare la distribuzione dei tipi di risorse e dei singoli elementi denominati tra il output_LN_file e il output_MUI_file. Il source_file deve essere un file binario Win32 che contiene risorse in un'unica lingua; in caso contrario, MUIRCT ha esito negativo. MUIRCT non suddivide il file se è indipendente dalla lingua, indicato con un solo valore ID lingua 0 nel file. I output_LN_file e i output_mui_file sono i nomi del file indipendente dalla lingua e mui in cui viene suddiviso il source_file. Questi nomi di file sono facoltativi. Se non vengono specificati, MUIRCT aggiunge le estensioni .ln e .mui a source_file. In genere è necessario rimuovere l'estensione ".ln" prima di distribuire il file. MUIRCT associa il output_LN_file e output_MUI_file calcolando un checksum in base al nome source_file e alla versione del file e inserendo il risultato nella sezione di configurazione delle risorse di ogni file di output. Se usato insieme all'opzione -c, l'opzione -q ha la precedenza. Se il file rc_config fornito con l'opzione -q contiene un MUIRCT checksum ignora l'opzione -c e inserisce il valore del checksum dal valore, rc_config file nei file LN e mui. Se non viene trovato alcun valore di checksum nella rc_config, MUIRCT calcola il checksum della risorsa in base al comportamento dell'opzione -c. |
-v | Specifica il livello di dettaglio per la registrazione. Specificare 1 per stampare tutti i messaggi di errore di base e i risultati dell'operazione. Specificare 2 per includere anche le informazioni sulla risorsa (tipo, nome, identificatore della lingua) incluse nel file mui e nel file LN. Il valore predefinito è -v 1 |
-x | Specifica l'ID lingua con cui MUIRCT contrassegna tutti i tipi di risorse aggiunti alla sezione della risorsa del file mui. Il valore LangID può essere specificato in formato decimale o esadecimale. Ad esempio, l'inglese (Stati Uniti) può essere specificato da -x 0x409 o -x 1033. |
-e | Estrae il checksum della risorsa contenuto nell'checksum_file fornito con l'opzione -c e lo inserisce nel output_file specificato. Quando si specifica -e, MUIRCT ignora tutte le opzioni diverse dall'opzione -c. In questo caso, il checksum_file deve essere un file binario Win32 che contiene una sezione dei dati di configurazione della risorsa con un valore checksum. Il output_file deve essere un file LN esistente o mui. |
-z | Calcola e inserisce i dati del checksum delle risorse nel file di output specificato. MUIRCT basa il calcolo del checksum sull'input fornito con l'opzione -c e l'opzione -b facoltativa. Se si specifica un file di output per l'opzione -z che non esiste, MUIRCT viene chiuso con un errore. Esempio: calcola il checksum in base alle risorse localizzabili in Notepad.exe e inserisce il checksum nel file di output Notepad2.exe. muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe |
-f | Consente di creare un file con estensione mui con la risorsa di versione che rappresenta l'unica risorsa localizzabile. Per impostazione predefinita, MUIRCT non consente questa operazione. |
-d | Individua e visualizza i dati di configurazione delle risorse incorporati nel file di origine. Quando si specifica questa opzione, MUIRCT ignora tutte le altre opzioni della riga di comando. |
-m | Specifica il numero di versione da utilizzare per calcolare il checksum per l'associazione del output_LN_file e output_MUI_file. |
source_filename | Nome del file di origine binario localizzato; Non è possibile utilizzare caratteri jolly. Questo file può contenere solo risorse in una sola lingua. Se nel file sono presenti risorse in più lingue, MUIRCT ha esito negativo, a meno che non venga usata l'opzione -b. Se il file contiene risorse con identificatori di lingua con solo valore 0, MUIRCT non suddivide il file perché un identificatore di lingua pari a 0 indica una lingua neutra. Per l'opzione -d, source_filename è un file LN o un file di risorse specifico della lingua per cui MUIRCT deve visualizzare i dati di configurazione delle risorse. |
language_neutral_filename | Opzionale. Nome del file LN. Se non si specifica il nome di questo file, MUIRCT aggiunge una seconda estensione ".ln" al nome del file di origine da usare come nome di file indipendente dalla lingua. In genere è necessario rimuovere l'estensione ".ln" prima di distribuire il file.
Nota: Il file LN non deve contenere stringhe o menu. È consigliabile rimuoverli manualmente. |
mui_filename | Opzionale. Nome del file di risorse specifico della lingua. Se non si specifica un nome, MUIRCT aggiunge una seconda estensione ".mui" al nome del file di origine da usare come nome file. In genere, MUIRCT crea un file di risorse specifico della lingua. Tuttavia, non crea un file di risorse se esistono una delle condizioni seguenti:
|
Output del linguaggio MUIRCT
MUIRCT sceglie il valore dell'attributo "UltimateFallbackLanguage" da inserire nei dati di configurazione delle risorse del file LN in base all'ordine seguente, dalla priorità più alta alla più bassa:
- Attributo "UltimateFallbackLanguage" nel file di configurazione della risorsa di origine, se ne viene passato uno come input.
- Lingua specificata con l'opzione -g.
- Lingua del file di input.
MUIRCT seleziona il valore dell'attributo "language" da inserire nei dati di configurazione delle risorse del file mui in base all'ordine seguente:
- Attributo "language" nel file di configurazione delle risorse di origine, se ne viene passato uno come input.
- Lingua specificata dall'opzione di -x (forza lingua).
- Lingua del file di input.
Gestione dei checksum MUIRCT
Il sistema operativo calcola in genere il checksum sulle risorse specifiche della lingua in un file, a meno che non si specifichi il checksum tramite un file di configurazione delle risorse. Purché il checksum sia lo stesso per il file LN e tutti i file di risorse specifici della lingua associati e l'attributo lingua nella configurazione delle risorse nella corrispondenza LN e dipendente dalla lingua, il caricatore di risorse può caricare correttamente le risorse.
MUIRCT supporta diversi metodi per inserire i checksum appropriati nei dati di configurazione delle risorse:
- Compilare un eseguibile per ogni linguaggio contenente sia il codice che le risorse. Successivamente, usare MUIRCT per suddividere ognuno di questi file in un file LN e in un file di risorse specifico della lingua. MUIRCT viene eseguito più volte, una volta per generare un file di risorse per ogni lingua. È possibile eseguire la compilazione nei modi seguenti:
- Usare l'opzione -q per specificare un valore di checksum nel file di configurazione della risorsa. MUIRCT inserisce questo valore in tutti i file LN e i file di risorse specifici della lingua prodotti. È necessario adottare una strategia per scegliere questo valore, come descritto più avanti in questo argomento.
- Usare l'opzione -c (e, facoltativamente, l'opzione -b) per scegliere una singola lingua con risorse da cui MUIRCT estrae il checksum.
- Usare l'opzione -z per scegliere una singola lingua con risorse da cui MUIRCT estrae sempre il checksum. Applicare questo checksum dopo che i file sono stati compilati usando altri metodi.
- Compilare un eseguibile contenente sia codice che risorse per un singolo linguaggio. A questo scopo, usare MUIRCT per suddividere le risorse tra il file LN e il file di risorse specifico della lingua. Infine, usare uno strumento di localizzazione binaria per modificare il file di risorse risultante per ogni lingua.
La convenzione più comune per la gestione dei checksum consiste nel basare il checksum sulle risorse inglese (Stati Uniti). È possibile adottare una convenzione diversa, purché sia coerente per ogni file LN. Ad esempio, è perfettamente accettabile per un'azienda di sviluppo software basare i propri checksum nel software che si basa su risorse francesi (Francia) anziché su risorse inglesi (Stati Uniti), purché tutte le applicazioni abbiano risorse francesi (Francia) su cui basare i checksum. È anche accettabile usare il file di configurazione delle risorse per assegnare un valore esadecimale arbitrario di un massimo di 16 cifre esadecimali come checksum. Questa ultima strategia impedisce l'uso effettivo delle opzioni -z, -c e -b di MUIRCT. Richiede l'adozione di un metodo usando GuidGen o altri strumenti per generare valori di checksum. Questa strategia richiede anche di configurare un criterio per determinare quando modificare il valore quando si aggiungono nuove risorse localizzabili.
Per applicare il checksum inglese (Stati Uniti) a tutti i file, è possibile usare uno dei metodi di gestione dei checksum descritti in precedenza. Ad esempio, è possibile generare il file LN e il file di risorse specifico della lingua per l'inglese (Stati Uniti), quindi usare l'opzione MUIRCT -d per ottenere il checksum risultante. È possibile copiare questo checksum nel file di configurazione delle risorse e usare l'opzione -q con MUIRCT per applicare il checksum a tutti gli altri file.
Uso di un file di configurazione delle risorse con MUIRCT
È possibile specificare i dati di configurazione delle risorse quando si usa MUIRCT. Indipendentemente dal fatto che si fornisca o meno in modo esplicito un file di configurazione delle risorse, ogni file di risorse specifico della lingua dispone di dati di configurazione delle risorse, come qualsiasi file LN con un file di risorse associato. Per esempio:
- Se si usa l'opzione -q per specificare un file di configurazione delle risorse, ma non sono presenti risorse localizzabili nel file di origine di input, non viene generato alcun file di risorse specifico della lingua e il file LN risultante non contiene dati di configurazione delle risorse. Inoltre, se il file di origine di input ha risorse multilingue, MUIRCT non dividerà il file.
Nota
Attualmente il comportamento di MUIRCT è incoerente quando l'elemento neutralResources del file di configurazione delle risorse non contiene elementi resourceType e l'elemento localizedResources contiene stringhe e menu, ad esempio. In tal caso, MUIRCT suddivide le risorse come indicato di seguito:
- Tutte le risorse nel file binario originale (incluse stringhe e menu), oltre alle risorse MUI, vengono inserite nel file LN.
- Le stringhe, i menu e le risorse MUI vengono inserite nel file di risorse specifico della lingua appropriato.
Esempi per l'uso di MUIRCT
esempi di di utilizzo standard
muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui
muirct -d myprog.exe.mui
esempio di output del file LN tramite -d switch
Di seguito è riportato un esempio dell'output dei dati di configurazione delle risorse da un file LN, Shell32.dll, usando l'opzione -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
esempio di output di Language-Specific file di risorse tramite switch -d
Di seguito è riportato un esempio dell'output dei dati di configurazione delle risorse da un file mui, Shell32.dllmui, usando l'opzione -d per 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à del compilatore RC
RC Compiler (Rc.exe) è un'utilità della riga di comando per compilare un file di script di definizione delle risorse (estensione rc) in file di risorse (estensione res). Il compilatore RC è incluso in Windows SDK. Questo documento illustra solo l'uso del compilatore RC con funzionalità correlate a MUI del caricatore di risorse. Per informazioni complete sul compilatore, vedere Informazioni sui file di risorse.
Il compilatore RC consente di compilare, da un singolo set di origini, un file LN e un file di risorse specifico del linguaggio separato. Per quanto riguarda MUIRCT, i file sono associati dai dati di configurazione delle risorse.
Sintassi del compilatore RC usata per le risorse MUI
Le opzioni del compilatore RC sono definite in dettaglio in Uso di RC. Questa sezione definisce solo le opzioni usate per compilare le risorse MUI. Tenere presente che ogni opzione non fa distinzione tra maiuscole e minuscole. Si presuppone che i tipi di risorsa siano indipendenti dalla lingua, a meno che non diversamente indicato.
rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]
opzioni e argomenti
Opzione | Funzione |
---|---|
-h o -? | Visualizza la schermata della Guida. |
-Fm | Usa il file di risorse specificato per le risorse specifiche della lingua. In genere il compilatore di risorse crea un file di risorse specifico del linguaggio. Tuttavia, non crea il file se esistono una delle condizioni seguenti:
|
-q | Usa il file di configurazione delle risorse specificato per ottenere i tipi di risorse da inserire nel file di risorse specifico della lingua e nel file LN. Per altre informazioni, vedere Preparazione di un file di configurazione delle risorse. In alternativa a questa opzione, è possibile usare le opzioni -j e -k, ma è preferibile usare un file di configurazione delle risorse. Usando l'opzione -q con un file di configurazione delle risorse, è possibile implementare una divisione basata su elementi e fornire attributi che finiranno con la configurazione della risorsa binaria nel file di risorse LN e specifico della lingua. Questa suddivisione non è possibile usando le opzioni -j e -k. Nota: il processo di suddivisione del compilatore RC non funziona correttamente se si archiviano risorse e informazioni sulla versione in file di configurazione delle risorse diversi. In questo caso, il compilatore RC non divide le informazioni sulla versione. Pertanto, si verifica un errore del linker durante il collegamento del file di risorse specifico della lingua perché il file non dispone di risorse di versione. |
-g | Specifica il linguaggio di fallback finale identificatore in formato esadecimale. |
-g1 | Crea un file MUI con estensione res anche se la risorsa VERSION è l'unico contenuto localizzabile. Per impostazione predefinita, il compilatore RC non produce un file res se VERSION è l'unica risorsa localizzabile. |
-g2 | Specifica il numero di versione personalizzato da utilizzare per il calcolo del checksum. |
mui_res_name | File di risorse per risorse specifiche della lingua. |
rc_config_file_name | File di configurazione delle risorse. |
langid | Identificatore di lingua. |
Versione | Numero di versione personalizzato, in un formato come "6.2.0.0". |
Esempio per l'uso del compilatore RC per compilare risorse MUI
Per illustrare l'operazione del compilatore RC con le risorse MUI, esaminare la riga di comando seguente per il file di risorse Myfile.rc:
rc -fm myfile_res.res -q myfile.rcconfig myfile.rc
Questa riga di comando fa in modo che il compilatore RC esee segue:
- Creare il file di risorse specifico della lingua Myfile_res.res e un file di risorse indipendente dalla lingua che per impostazione predefinita è Myfile.res, in base al nome del file RC.
- Aggiungere il valore 2 (articolo 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE tipi di risorse nel file res specifico della lingua se si trovano nel file RC.
- Aggiungere il tipo di risorsa 16, insieme a qualsiasi altro tipo di risorsa descritto nel file di risorse al file res indipendente dalla lingua e al file res specifico della lingua. Si noti che, in questo esempio, il tipo di risorsa 16 viene aggiunto in due posizioni.
- Scegliere il valore dell'attributo "UltimateFallbackLanguage" da inserire nei dati di configurazione delle risorse del file LN in base ai criteri seguenti, ordinati dalla priorità più alta al più basso:
- Attributo "UltimateFallbackLanguage" nel file di configurazione della risorsa se ne viene passato uno come input.
- Valore dell'attributo del linguaggio da inserire nei dati di configurazione delle risorse in base all'ordine del linguaggio del compilatore RC (linguaggio indipendente dalla lingua e dal linguaggio specifico del file di risorse). Le considerazioni includono la lingua nel file RC, il valore della lingua dell'opzione -gl e l'identificatore 0x0409 per l'inglese (Stati Uniti).
Osservazioni
Se si include un tipo di risorsa ICON(3), DIALOG(5), STRING(6) o VERSION(16) nell'elemento neutralResources, è necessario duplicare tale voce nell'elemento localizedResources nel file di configurazione della risorsa.
Argomenti correlati