Dela via


Resursverktyg

I det här avsnittet beskrivs två verktyg som används för att skapa MUI-program. Medan MUIRCT är ett MUI-specifikt verktyg använder MUI också standardverktyget för Windows RC Compiler. Anvisningar för hur du använder dessa verktyg finns i Lokalisera resurser och skapa programmet.

MUIRCT-verktyg

MUIRCT (Muirct.exe) är ett kommandoradsverktyg för att dela upp en körbar standardfil i en LN-fil och språkspecifika resursfiler (dvs. localizable). Var och en av de resulterande filerna innehåller resurskonfigurationsdata för filassociation. MUIRCT ingår i Microsoft Windows SDK för Windows Vista.

Not

Från och med Windows Vista uppdateras Win32-resursinläsaren för att läsa in resurser från språkspecifika filer samt från LN-filer.

 

MUIRCT-användning

  1. Dela upp binärfilen i den binära huvudfilen och mui-filen baserat på rc_config fil.

    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. Extrahera kontrollsumman från checksum_file och infoga den i output_file.

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

  3. Beräkna kontrollsumma baserat på checksum_file och infoga den i output_file.

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

  4. Dumpa innehållet i resurskonfigurationsdata från input_file.

    Muirct -d input_file

MUIRCT-syntax

MUIRCT kan ta riktning från kommandoradsväxlar och/eller från en resurskonfigurationsfil som anges med hjälp av växeln -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]

växlar och argument

Alternativ Avsikt
-h eller -? Visar hjälpskärmen.
-c Anger de indata checksum_file som resurskontrollsumman ska extraheras eller beräknas från. Checksum_file måste vara en binär Win32-fil som innehåller lokala resurser. Om checksum_file innehåller resurser för mer än ett språk måste -b-växeln användas för att ange vilket av dessa som ska användas annars misslyckas MUIRCT.
-b Anger vilket språk som ska användas när checksum_file som anges med -c innehåller resurser på flera språk. Den här växeln kan endast användas tillsammans med växeln -c. Språkidentifieraren kan vara i decimal- eller hexadecimalt format. MUIRCT misslyckas om checksum_file innehåller resurser på flera språk och -b inte har angetts eller om det språk som anges av -b växeln inte kan hittas i checksum_file.
-g Anger det språk-ID som ska inkluderas som det ultimata återställningsspråket i avsnittet resurskonfigurationsdata i LN-filen. Om resursinläsaren inte kan läsa in en begärd .mui-fil från trådens önskade gränssnittsspråk använder den det ultimata återställningsspråket som sitt sista försök. LangID-värdet kan anges i decimal- eller hexadecimalt format. Till exempel kan engelska (USA) anges av -g 0x409 eller -g 1033.
-q Anger att source_file ska delas upp i output_LN_file och output_MUI_file enligt rc_config fillayout. Den rc_config filen är en XML-formaterad fil som anger vilka resurser som ska extraheras till .mui-filen och som kommer att finnas kvar i LN-filen. Rc_config kan ange fördelningen av resurstyper och enskilda namngivna objekt mellan output_LN_file och output_MUI_file. Source_file måste vara en Win32-binär fil som innehåller resurser på ett enda språk, annars misslyckas MUIRCT. MUIRCT delar inte upp filen om den är språkneutral, vilket anges genom att endast ha språk-ID-värdet 0 i filen. Output_LN_file och output_mui_file är namnen på den språkneutrala filen och .mui-filen som source_file delas i. Dessa filnamn är valfria. Om de inte anges lägger MUIRCT till tilläggen .ln och .mui till source_file. Vanligtvis bör du ta bort tillägget ".ln" innan du distribuerar filen. MUIRCT associerar output_LN_file och output_MUI_file genom att beräkna en kontrollsumma baserat på source_file namn och filversion och infoga resultatet i resurskonfigurationsavsnittet för varje utdatafil. När den används tillsammans med växeln -c har -q växeln företräde. Om den rc_config fil som medföljer växeln -q innehåller en checksumma ignorerar MUIRCT -c-växeln och infogar kontrollsummavärdet från värdet rc_config filen i LN- och.mui-filerna. Om inget kontrollsummavärde hittas i rc_config beräknar MUIRCT resurskontrollsumman baserat på beteendet för -c växeln.
-v Anger hur utförlig loggningsnivån är. Ange 1 för att skriva ut alla grundläggande felmeddelanden och åtgärdsresultat. Ange 2 för att även inkludera resursinformationen (typ, namn, språkidentifierare) som ingår i .mui-filen och LN-filen. Standardvärdet är -v 1
-x Anger det språk-ID som MUIRCT markerar alla resurstyper som läggs till i resursavsnittet i .mui-filen. LangID-värdet kan anges i decimal- eller hexadecimalt format. Till exempel kan engelska (USA) anges av -x 0x409 eller -x 1033.
-e Extraherar resurskontrollsumman i checksum_file som medföljer -c-växeln och infogar den i den angivna output_file. När -e anges ignorerar MUIRCT alla andra växlar än -c växeln. I det här fallet måste checksum_file vara en win32-binär fil som innehåller ett resurskonfigurationsdataavsnitt med ett kontrollsummavärde. Output_file måste vara en befintlig LN-fil eller .mui-fil.
-z Beräknar och infogar resurskontrollsummadata i den angivna utdatafilen. MUIRCT baserar kontrollsummaberäkning på de indata som medföljer -c-växeln och den valfria -b växeln. Om du anger en utdatafil för den -z växel som inte finns avslutas MUIRCT med ett fel.
Exempel: Beräknar kontrollsumman baserat på lokala resurser i Notepad.exe och infogar kontrollsumman i utdatafilen Notepad2.exe.
muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe
-f Gör det möjligt att skapa en .mui-fil där versionsresursen är den enda lokala resursen. Som standard tillåter INTE MUIRCT detta.
-d Letar upp och visar inbäddade resurskonfigurationsdata i källfilen. När du anger den här växeln ignorerar MUIRCT alla andra kommandoradsalternativ.
-m Anger det versionsnummer som ska användas vid beräkning av kontrollsumman för att associera output_LN_file och output_MUI_file.
source_filename Namnet på den lokaliserade binära källfilen. jokertecken kan inte användas. Den här filen kan bara innehålla resurser på ett språk. Om det finns resurser på flera språk i filen misslyckas MUIRCT, såvida inte växeln -b används. Om filen innehåller resurser med språkidentifierare som endast har värdet 0 delar INTE MUIRCT upp filen eftersom en språkidentifierare på 0 anger ett neutralt språk.
För -d växeln är source_filename antingen en LN-fil eller en språkspecifik resursfil som MUIRCT ska visa resurskonfigurationsdata för.
language_neutral_filename Valfri. Namnet på LN-filen. Om du inte anger namnet på den här filen lägger MUIRCT till ett andra tillägg ".ln" till källfilnamnet som ska användas som språkneutralt filnamn. Vanligtvis bör du ta bort tillägget ".ln" innan du distribuerar filen. Obs! LN-filen får inte innehålla strängar eller menyer. Du bör ta bort dem manuellt.
mui_filename Valfri. Namn på språkspecifik resursfil. Om du inte anger något namn lägger MUIRCT till ett andra tillägg ".mui" till källfilnamnet som ska användas som filnamn. Normalt skapar MUIRCT en språkspecifik resursfil. Den skapar dock ingen resursfil om något av följande villkor finns:
  • Inga lokala resurser finns i den ursprungliga binära filen.
  • Det enda resursspråket som finns i den ursprungliga binära filen är det neutrala språket.
  • Den ursprungliga binära filen har resurser för mer än ett språk, utan att räkna det neutrala språket. Om den binära filen innehåller resurser för två språk, och ett av dem är det neutrala språket, anser verktyget att filen är enspråkig och skapar en språkspecifik resursfil om det finns lokala resurser.

 

MUIRCT-språkutdata

MUIRCT väljer attributvärdet "UltimateFallbackLanguage" som ska infogas i konfigurationsdata för LN-filresurser baserat på följande ordning, från högsta prioritet till lägsta:

  1. Attributet "UltimateFallbackLanguage" i källresurskonfigurationsfilen, om en skickas som indata.
  2. Det språk som anges med växeln -g.
  3. Indatafilspråk.

MUIRCT väljer attributet "language" som ska infogas i .mui-filresurskonfigurationsdata baserat på följande ordning:

  1. Attributet "language" i källresurskonfigurationsfilen, om en skickas som indata.
  2. Det språk som anges av växeln -x (force language).
  3. Indatafilspråk.

MUIRCT-kontrollsummahantering

Operativsystemet beräknar normalt kontrollsumman över de språkspecifika resurserna i en fil om du inte anger kontrollsumman via en resurskonfigurationsfil. Så länge kontrollsumman är densamma för LN-filen och alla associerade språkspecifika resursfiler och språkattributet i resurskonfigurationen i den LN- och språkberoende matchningen kan resursinläsaren läsa in resurser.

MUIRCT stöder flera metoder för att placera lämpliga kontrollsummor i resurskonfigurationsdata:

  1. Skapa en körbar fil för varje språk som innehåller både kod och resurser. Därefter använder du MUIRCT för att dela upp var och en av dessa filer i en LN-fil och en språkspecifik resursfil. MUIRCT körs flera gånger, en gång för att generera en resursfil för varje språk. Du kan utföra bygget på följande sätt:
    1. Använd växeln -q för att ange ett kontrollsummavärde i resurskonfigurationsfilen. MUIRCT placerar det här värdet i alla LN-filer och språkspecifika resursfiler som skapas. Du måste använda en strategi för att välja det här värdet, enligt beskrivningen senare i det här avsnittet.
    2. Använd växeln -c (och, om du vill, -b växeln) för att välja ett enda språk med resurser som MUIRCT extraherar kontrollsumman från.
    3. Använd -z växla för att välja ett enda språk med resurser som MUIRCT alltid extraherar kontrollsumman från. Använd den här kontrollsumman när filerna har skapats med hjälp av andra metoder.
  2. Skapa en körbar fil som innehåller både kod och resurser för ett enda språk. Därefter använder du MUIRCT för att dela upp resurserna mellan LN-filen och den språkspecifika resursfilen. Använd slutligen ett binärt lokaliseringsverktyg för att ändra den resulterande resursfilen för varje språk.

Den vanligaste konventionen för kontrollsummahantering är att basera kontrollsumman på de engelska resurserna (USA). Du kan använda en annan konvention så länge den är konsekvent för varje LN-fil. Till exempel är det helt acceptabelt för ett programvaruutvecklingsföretag att basera sina kontrollsummor i programvaran som det bygger på franska (Frankrike) resurser i stället för engelska (USA) resurser, så länge alla program har franska (Frankrike) resurser för att basera kontrollsummorna. Det är också acceptabelt att använda resurskonfigurationsfilen för att tilldela ett godtyckligt hexadecimalt värde på upp till 16 hexadecimala siffror som en kontrollsumma. Den här sista strategin utesluter effektiv användning av -z, -c och -b switchar av MUIRCT. Det kräver införande av en metod med antingen GuidGen eller något annat verktyg för att generera kontrollsummor. Den här strategin kräver också att du konfigurerar en princip för att avgöra när du ska ändra värdet när du lägger till nya lokala resurser.

Om du vill tillämpa kontrollsumman på engelska (USA) på alla filer kan du använda någon av metoderna för kontrollsummahantering som beskrivs ovan. Du kan till exempel generera LN-filen och den språkspecifika resursfilen för engelska (USA) och sedan använda MUIRCT--d växla för att hämta den resulterande kontrollsumman. Du kan kopiera den här kontrollsumman till resurskonfigurationsfilen och använda -q-växeln med MUIRCT för att tillämpa kontrollsumman på alla andra filer.

Användning av en resurskonfigurationsfil med MUIRCT

Du kan ange resurskonfigurationsdata när du använder MUIRCT. Oavsett om du uttryckligen anger en resurskonfigurationsfil har varje språkspecifik resursfil resurskonfigurationsdata, liksom alla LN-filer med en associerad resursfil. Till exempel:

  • Om du använder växeln -q för att ange en resurskonfigurationsfil, men det inte finns några lokala resurser i indatakällan, genereras ingen språkspecifik resursfil och den resulterande LN-filen innehåller inte resurskonfigurationsdata. Om källfilen för indata har flerspråkiga resurser delar INTE MUIRCT upp filen.

Not

Beteendet för MUIRCT är för närvarande inkonsekvent när elementet neutralResources i resurskonfigurationsfilen inte innehåller några resourceType-element och elementet localizedResources innehåller strängar och menyer, till exempel. I så fall delar MUIRCT upp resurserna på följande sätt:

  • Alla resurser i den ursprungliga binära filen (inklusive strängar och menyer), plus MUI-resurserna, placeras i LN-filen.
  • Strängar, menyer och MUI-resurser placeras i lämplig språkspecifik resursfil.

 

Exempel för att använda MUIRCT

exempel på standardanvändning

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

muirct -d myprog.exe.mui

exempel på LN-filutdata med -d Växla

Här är ett exempel på resurskonfigurationsdatautdata från en LN-fil, Shell32.dll, med hjälp av -d växeln med 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

exempel på Language-Specific resursfilutdata med -d Växla

Här är ett exempel på resurskonfigurationsdatautdata från en .mui-fil, Shell32.dll.mui, med hjälp av -d växeln för 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

RC-kompilatorverktyg

RC Compiler (Rc.exe) är ett kommandoradsverktyg för att kompilera en resursdefinitionsskriptfil (.rc-tillägg) till resursfiler (.res-tillägget). RC Compiler ingår i Windows SDK. Det här dokumentet förklarar bara användningen av RC Compiler med MUI-relaterade funktioner i resursinläsaren. Fullständig information om kompilatorn finns i Om resursfiler.

Med RC Compiler kan du skapa en LN-fil från en enda uppsättning källor och en separat språkspecifik resursfil. När det gäller MUIRCT associeras filerna med resurskonfigurationsdata.

RC-kompilatorsyntax som används för MUI-resurser

RC-kompilatorväxlar definieras i detalj i Using RC. Det här avsnittet definierar bara de växlar som används för att skapa MUI-resurser. Kom ihåg att varje växel är skiftlägeskänslig. Resurstyper antas vara språkneutrala om inget annat anges.

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

växlar och argument

Alternativ Funktion
-h eller -? Visar hjälpskärmen.
-Fm Använder den angivna resursfilen för språkspecifika resurser. Normalt skapar resurskompilatorn en språkspecifik resursfil. Den skapar dock inte filen om något av följande villkor finns:
  • Det finns inga lokala resurser i .rc-filen.
  • Det enda resursspråket som finns i .rc-filen är det neutrala språket.
  • .rc-filen har resurser för mer än ett språk, utan att räkna det neutrala språket. Om .rc-filen innehåller resurser för två språk, och ett av dem är det neutrala språket, anser kompilatorn att filen är enspråkig. Om det finns lokala resurser skapar kompilatorn en språkspecifik resursfil.
-q Använder den angivna resurskonfigurationsfilen för att hämta de resurstyper som ska installeras i den språkspecifika resursfilen och LN-filen. Mer information finns i Förbereda en resurskonfigurationsfil. Som ett alternativ till den här växeln kan du använda -j och -k växlar, men det är att föredra att använda en resurskonfigurationsfil.
Genom att använda -q växeln med en resurskonfigurationsfil kan du implementera en objektbaserad delning och tillhandahålla attribut som kommer att sluta med konfigurationen av binär resurs i den LN- och språkspecifika resursfilen. Den här uppdelningen är inte möjlig med hjälp av -j- och -k-växlarna. Obs! RC Compiler-delningsprocessen fungerar inte korrekt om du lagrar resurser och versionsinformation i olika resurskonfigurationsfiler. I det här fallet delar RC-kompilatorn inte versionsinformationen. Därför uppstår ett länkfel under länkningen av den språkspecifika resursfilen eftersom filen inte har versionsresurser.
-g Anger det ultimata reservspråket identifierare i hexadecimalt.
-g1 Skapar en MUI .res-fil även om VERSIONSresursen är det enda lokala innehållet. Som standard skapar RC-kompilatorn inte en .res-fil om VERSION är den enda lokala resursen.
-g2 Anger det anpassade versionsnummer som ska användas vid beräkning av kontrollsumman.
mui_res_name Resursfil för språkspecifika resurser.
rc_config_file_name Resurskonfigurationsfil.
langid Språkidentifierare.
version Anpassat versionsnummer, i ett format som "6.2.0.0".

 

Exempel för att använda RC-kompilator för att skapa MUI-resurser

För att illustrera RC Compiler-åtgärden med MUI-resurser ska vi undersöka följande kommandorad för resursfilen Myfile.rc:

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

Den här kommandoraden gör att RC-kompilatorn gör följande:

  • Skapa den språkspecifika resursfilen Myfile_res.res och en språkneutral resursfil som standard är Myfile.res, baserat på namnet på .rc-filen.
  • Lägg till 2 (objekt 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE resurstyper till den språkspecifika .res-filen om de finns i .rc-filen.
  • Lägg till resurstyp 16 tillsammans med andra resurstyper som beskrivs i resursfilen i den språkneutrala .res-filen och till den språkspecifika .res-filen. Observera att resurstypen 16 i det här exemplet läggs till på två platser.
  • Välj attributvärdet "UltimateFallbackLanguage" som ska infogas i konfigurationsdata för LN-filresurser baserat på följande kriterier, sorterade från högsta prioritet till lägsta:
    • Attributet "UltimateFallbackLanguage" i resurskonfigurationsfilen om en skickas som indata.
    • Språkattributvärde som ska infogas i resurskonfigurationsdata baserat på RC Compiler-språkordningen (språkneutralt och språkspecifikt resursfilspråk). Överväganden inkluderar språk i .rc-filen, språkvärdet för växeln -gl och identifierare 0x0409 för engelska (USA).

Anmärkningar

Om du inkluderar någon ICON(3), DIALOG(5), STRING(6) eller VERSION(16) resurstyp i neutralResources-elementet måste du duplicera posten i elementet localizedResources i resurskonfigurationsfilen.

referens för flerspråkigt användargränssnitt

MUI-resurshantering

Lokalisera resurser och skapa programmet