Hulpprogramma's voor resources
In dit onderwerp worden twee hulpprogramma's beschreven die worden gebruikt voor het bouwen van MUI-toepassingen. Hoewel MUIRCT een MUI-specifiek hulpprogramma is, maakt MUI ook gebruik van het standaardhulpprogramma Windows RC Compiler. Instructies voor het gebruik van deze hulpprogramma's zijn beschikbaar in Resources lokaliseren en de toepassings-bouwen.
MUIRCT Utility
MUIRCT (Muirct.exe) is een opdrachtregelprogramma voor het splitsen van een standaard uitvoerbaar bestand in een LN-bestand en taalspecifieke (dat wil gezegd, lokaliseerbare) bronbestanden. Elk van de resulterende bestanden bevat resourceconfiguratiegegevens voor bestandskoppeling. MUIRCT is opgenomen in de Microsoft Windows SDK voor Windows Vista.
Notitie
Vanaf Windows Vista wordt het Win32-resourcelaadprogramma bijgewerkt voor het laden van resources uit taalspecifieke bestanden en van LN-bestanden.
MUIRCT-gebruik
Splits binair bestand in hoofd binair en mui-bestand op basis van rc_config bestand.
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]
Pak controlesom uit checksum_file en voeg deze in output_file in.
Muirct -c checksum_file [-b LangID] -e output_file
Bereken de controlesom op basis van checksum_file en voeg deze in output_file in.
Muirct -c checksum_file [-b LangID] -q rc_config -z output_file
Inhoud van resourceconfiguratiegegevens dumpen uit input_file.
Muirct -d input_file
MUIRCT-syntaxis
MUIRCT kan richting nemen van opdrachtregelswitches en/of vanuit een resourceconfiguratiebestand dat is opgegeven met behulp van de -q-switch.
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]
schakelopties en argumenten
Optie | Doel |
---|---|
-h of -? | Toont het Help-scherm. |
-c | Hiermee geeft u de invoer checksum_file waaruit de resourcecontrolesom moet worden geëxtraheerd of berekend. Checksum_file moet een binair Win32-bestand met lokaliseerbare resources zijn. Als checksum_file resources bevat voor meer dan één taal, moet de -b switch worden gebruikt om op te geven welke van deze moeten worden gebruikt, anders mislukt MUIRCT. |
-b | Hiermee geeft u de taal op die moet worden gebruikt wanneer de checksum_file die is opgegeven met -c resources in meerdere talen bevat. Deze switch kan alleen worden gebruikt in combinatie met de -c switch. De taal-id kan een decimale of hexadecimale notatie hebben. MUIRCT mislukt als de checksum_file resources in meerdere talen bevat en de -b niet is opgegeven of als de taal die is opgegeven door de -b switch niet kan worden gevonden in de checksum_file. |
-g | Hiermee geeft u de taal-id die moet worden opgenomen als de ultieme terugvaltaal in de sectie resourceconfiguratiegegevens van het LN-bestand. Als het resourcelaadprogramma een aangevraagd mui-bestand niet kan laden uit de talen van de voorkeursinterface van de thread, wordt de ultieme terugvaltaal gebruikt als laatste poging. De LangID-waarde kan worden opgegeven in decimale of hexadecimale notatie. Engels (Verenigde Staten) kan bijvoorbeeld worden opgegeven door -g 0x409 of -g 1033. |
-q | Hiermee geeft u op dat de source_file moet worden gesplitst in de output_LN_file en de output_MUI_file volgens de rc_config bestandsindeling. Het rc_config-bestand is een XML-bestand dat aangeeft welke resources worden geëxtraheerd naar het MUI-bestand en die in het LN-bestand worden achtergelaten. De rc_config kan de distributie van resourcetypen en afzonderlijke benoemde items tussen de output_LN_file en output_MUI_file opgeven. De source_file moet een Win32-binair bestand zijn dat resources in één taal bevat, anders mislukt MUIRCT. MUIRCT splitst het bestand niet als het taalneutraal is dat wordt aangegeven door alleen de taal-id-waarde 0 in het bestand te hebben. De output_LN_file en output_mui_file zijn de namen van het taalneutraal- en MUI-bestand waarin de source_file wordt gesplitst. Deze bestandsnamen zijn optioneel. Als ze niet zijn opgegeven, voegt MUIRCT de extensies .ln en .mui toe aan source_file. Meestal moet u de extensie .ln verwijderen voordat u het bestand implementeert. MUIRCT koppelt de output_LN_file en output_MUI_file door een controlesom te berekenen op basis van de source_file naam en bestandsversie en het resultaat in te voegen in de resourceconfiguratiesectie van elk uitvoerbestand. Wanneer de -q wordt gebruikt in combinatie met de -c schakelaar, heeft de -q voorrang. Als het rc_config bestand dat is opgegeven bij de -q switch een checksum MUIRCT bevat, negeert u de -c switch en voegt u de controlesomwaarde van de waarde in, rc_config bestand in de LN- en.mui-bestanden. Als er geen controlesomwaarde wordt gevonden in de rc_config, berekent MUIRCT de resourcecontrolesom op basis van het gedrag van de -c-switch. |
-v | Hiermee geeft u het niveau van uitgebreidheid voor logboekregistratie. Geef 1 op om alle basisfoutberichten en bewerkingsresultaten af te drukken. Geef 2 op om ook de resourcegegevens (type, naam, taal-id) in het MUI-bestand en LN-bestand op te nemen. De standaardwaarde is -v 1 |
-x | Hiermee geeft u de taal-id op waarmee MUIRCT alle resourcetypen markeert die zijn toegevoegd aan de resourcesectie van het MUI-bestand. De LangID-waarde kan worden opgegeven in decimale of hexadecimale notatie. Engels (Verenigde Staten) kan bijvoorbeeld worden opgegeven door -x 0x409 of -x 1033. |
-e | Extraheert de resourcecontrolesom in de checksum_file die is geleverd met de -c-switch en voegt deze in de opgegeven output_file in. Wanneer -e is opgegeven, negeert MUIRCT alle andere switches dan de -c switch. In dit geval moet de checksum_file een binair Win32-bestand zijn dat een sectie met resourceconfiguratiegegevens bevat met een controlesomwaarde. De output_file moet een bestaand LN-bestand of EEN MUI-bestand zijn. |
-z | Berekent en voegt resourcecontrolesomgegevens in het opgegeven uitvoerbestand in. MUIRCT baseert de controlesomberekening op de invoer die wordt geleverd met de -c switch en de optionele -b switch. Als u een uitvoerbestand opgeeft voor de -z switch die niet bestaat, wordt MUIRCT afgesloten met een fout. Voorbeeld: berekent de controlesom op basis van lokaliseerbare resources in Notepad.exe en voegt de controlesom in het uitvoerbestand in Notepad2.exe. muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe |
-f | Hiermee kunt u een MUI-bestand maken waarbij de versieresource de enige lokaliseerbare resource is. MUIRCT staat dit standaard niet toe. |
-d | Hiermee worden ingesloten resourceconfiguratiegegevens in het bronbestand gevonden en weergegeven. Wanneer u deze schakeloptie opgeeft, negeert MUIRCT alle andere opdrachtregelopties. |
-m | Hiermee geeft u het versienummer op dat moet worden gebruikt bij het berekenen van de controlesom voor het koppelen van de output_LN_file en output_MUI_file. |
source_filename | Naam van het gelokaliseerde binaire bronbestand; jokertekens kunnen niet worden gebruikt. Dit bestand kan slechts resources in één taal bevatten. Als er resources in meerdere talen in het bestand staan, mislukt MUIRCT, tenzij de -b switch wordt gebruikt. Als het bestand resources bevat met taal-id's met alleen waarde 0, splitst MUIRCT het bestand niet omdat een taal-id van 0 een neutrale taal aangeeft. Voor de -d switch is source_filename een LN-bestand of een taalspecifiek resourcebestand waarvoor MUIRCT resourceconfiguratiegegevens moet weergeven. |
language_neutral_filename | Facultatief. Naam van LN-bestand. Als u de naam van dit bestand niet opgeeft, voegt MUIRCT een tweede extensie '.ln' toe aan de bronbestandsnaam die moet worden gebruikt als de taalneutrale bestandsnaam. Meestal moet u de extensie .ln verwijderen voordat u het bestand implementeert.
Opmerking: Het LN-bestand mag geen tekenreeksen of menu's bevatten. U moet ze handmatig verwijderen. |
mui_filename | Facultatief. Naam van taalspecifiek resourcebestand. Als u geen naam opgeeft, voegt MUIRCT een tweede extensie '.mui' toe aan de naam van het bronbestand dat moet worden gebruikt als bestandsnaam. Normaal gesproken maakt MUIRCT een taalspecifiek resourcebestand. Er wordt echter geen resourcebestand gemaakt als er een van de volgende voorwaarden bestaat:
|
MUIRCT-taaluitvoer
MUIRCT kiest de kenmerkwaarde UltimateFallbackLanguage om in te voegen in de configuratiegegevens van de LN-bestandsresource op basis van de volgende volgorde, van hoogste prioriteit tot laagste:
- Het kenmerk UltimateFallbackLanguage in het bronresourceconfiguratiebestand, als er een wordt doorgegeven als invoer.
- De taal die is opgegeven met de schakeloptie -g.
- Invoerbestandstaal.
MUIRCT kiest de kenmerkwaarde 'language' om in te voegen in de resourceconfiguratiegegevens van het MUI-bestand op basis van de volgende volgorde:
- Kenmerk 'language' in het bronresourceconfiguratiebestand, als er een wordt doorgegeven als invoer.
- De taal die is opgegeven door de -x switch (force language).
- Invoerbestandstaal.
Verwerking van MUIRCT-controlesom
Het besturingssysteem berekent normaal gesproken de controlesom voor de taalspecifieke resources in een bestand, tenzij u de controlesom via een resourceconfiguratiebestand opgeeft. Zolang de controlesom hetzelfde is voor het LN-bestand en alle bijbehorende taalspecifieke resourcebestanden, en het taalkenmerk in de resourceconfiguratie in de afhankelijke LN- en taalafhankelijke overeenkomst, kan het resourcelaadprogramma resources laden.
MUIRCT ondersteunt verschillende methoden voor het plaatsen van de juiste controlesommen in de resourceconfiguratiegegevens:
- Bouw een uitvoerbaar bestand voor elke taal, met zowel code als resources. Gebruik HIERNA MUIRCT om elk van deze bestanden te splitsen in een LN-bestand en een taalspecifiek resourcebestand. MUIRCT wordt meerdere keren uitgevoerd, eenmaal om een resourcebestand voor elke taal te genereren. U kunt de build op de volgende manieren uitvoeren:
- Gebruik de schakeloptie -q om een controlesomwaarde op te geven in het resourceconfiguratiebestand. MUIRCT plaatst deze waarde in alle LN-bestanden en taalspecifieke bronbestanden die worden geproduceerd. U moet een strategie kiezen voor het kiezen van deze waarde, zoals verderop in dit onderwerp wordt beschreven.
- Gebruik de -c switch (en eventueel de -b switch) om één taal te kiezen met resources waaruit MUIRCT de controlesom extraheert.
- Gebruik de -z om één taal te kiezen met resources waaruit MUIRCT altijd de controlesom extraheert. Pas deze controlesom toe nadat de bestanden zijn gemaakt met behulp van andere methoden.
- Bouw een uitvoerbaar bestand met zowel code als resources voor één taal. Gebruik HIERNA MUIRCT om de resources te splitsen tussen het LN-bestand en het taalspecifieke resourcebestand. Gebruik ten slotte een binair lokalisatieprogramma om het resulterende resourcebestand voor elke taal te wijzigen.
De meest voorkomende conventie voor controlesomafhandeling is het baseren van de controlesom op de Engelse (Verenigde Staten) resources. U kunt een andere conventie aannemen, zolang deze consistent is voor elk LN-bestand. Het is bijvoorbeeld perfect acceptabel dat een softwareontwikkelingsonderneming de controlesommen baseert in de software die is gebaseerd op Franse (Frankrijk) resources in plaats van Engelse (Verenigde Staten) resources, zolang alle toepassingen Franse (Frankrijk) resources hebben waarop de controlesommen moeten worden gebaseerd. Het is ook acceptabel om het resourceconfiguratiebestand te gebruiken om een willekeurige hexadecimale waarde van maximaal 16 hexadecimale cijfers toe te wijzen als controlesom. Deze laatste strategie sluit het effectieve gebruik van de schakelopties -z, -c en -b van MUIRCT uit. Hiervoor moet een methode worden gebruikt met behulp van GuidGen- of een ander hulpprogramma om controlesomwaarden te genereren. Voor deze strategie moet u ook een beleid instellen om te bepalen wanneer de waarde moet worden gewijzigd bij het toevoegen van nieuwe lokaliseerbare resources.
Als u de Engelse controlesom (Verenigde Staten) wilt toepassen op alle bestanden, kunt u een van de hierboven beschreven controlesommethoden gebruiken. U kunt bijvoorbeeld het LN-bestand en het taalspecifieke bronbestand genereren voor Engels (Verenigde Staten) en vervolgens de MUIRCT--d switch gebruiken om de resulterende controlesom te verkrijgen. U kunt deze controlesom kopiëren naar uw resourceconfiguratiebestand en de -q switch gebruiken met MUIRCT om de controlesom toe te passen op alle andere bestanden.
Gebruik van een resourceconfiguratiebestand met MUIRCT
U kunt resourceconfiguratiegegevens opgeven wanneer u MUIRCT gebruikt. Ongeacht of u expliciet een resourceconfiguratiebestand opgeeft, bevat elk taalspecifiek resourcebestand resourceconfiguratiegegevens, net zoals elk LN-bestand met een gekoppeld resourcebestand. Bijvoorbeeld:
- Als u de -q switch gebruikt om een resourceconfiguratiebestand op te geven, maar er geen lokaliseerbare resources in uw invoerbronbestand staan, wordt er geen taalspecifiek resourcebestand gegenereerd en bevat het resulterende LN-bestand geen resourceconfiguratiegegevens. Als het invoerbronbestand meertalige resources bevat, splitst MUIRCT het bestand niet.
Notitie
Het gedrag van MUIRCT is momenteel inconsistent wanneer het element neutralResources van het resourceconfiguratiebestand geen resourceType-elementen bevat en het element localizedResources tekenreeksen en menu's bevat, bijvoorbeeld. In dat geval splitst MUIRCT de resources als volgt:
- Alle resources in het oorspronkelijke binaire bestand (inclusief tekenreeksen en menu's), plus de MUI-resources, worden in het LN-bestand geplaatst.
- Tekenreeksen, menu's en MUI-resources worden in het juiste taalspecifieke resourcebestand geplaatst.
Voorbeelden voor het gebruik van MUIRCT
Voorbeelden van standaardgebruik
muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui
muirct -d myprog.exe.mui
voorbeeld van LN-bestandsuitvoer met -d switch-
Hier volgt een voorbeeld van de uitvoer van resourceconfiguratiegegevens uit een LN-bestand, Shell32.dll, met behulp van de -d-switch met 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
voorbeeld van uitvoer van Language-Specific resourcebestand met -d switch
Hier volgt een voorbeeld van de uitvoer van resourceconfiguratiegegevens van een MUI-bestand, Shell32.dll.mui, met behulp van de -d-switch voor 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 Compiler Utility
RC Compiler (Rc.exe) is een opdrachtregelprogramma voor het compileren van een resourcedefinitiescriptbestand (.rc-extensie) in resourcebestanden (extensie.res). RC Compiler is opgenomen in de Windows SDK. In dit document wordt alleen uitgelegd hoe RC Compiler wordt gebruikt met MUI-gerelateerde mogelijkheden van het resourcelaadprogramma. Zie Over resourcebestandenvoor volledige informatie over de compiler.
MET RC Compiler kunt u, vanuit één set bronnen, een LN-bestand en een afzonderlijk taalspecifiek resourcebestand bouwen. Net als bij MUIRCT worden de bestanden gekoppeld aan resourceconfiguratiegegevens.
RC Compiler syntaxis zoals gebruikt voor MUI-resources
RC Compiler-switches worden gedetailleerd gedefinieerd in Rc-gebruiken. In deze sectie worden alleen de switches gedefinieerd die worden gebruikt voor het bouwen van MUI-resources. Houd er rekening mee dat elke switch niet hoofdlettergevoelig is. Resourcetypen worden verondersteld taalneutraal te zijn, tenzij anders wordt aangegeven.
rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]
schakelopties en argumenten
Optie | Functie |
---|---|
-h of -? | Toont het Help-scherm. |
-Fm | Gebruikt het opgegeven resourcebestand voor taalspecifieke resources. Normaal gesproken maakt de resourcecompilator een taalspecifiek resourcebestand. Het bestand wordt echter niet gemaakt als er een van de volgende voorwaarden bestaat:
|
-q | Maakt gebruik van het opgegeven resourceconfiguratiebestand om de resourcetypen op te halen die moeten worden opgeslagen in het taalspecifieke resourcebestand en het LN-bestand. Zie Een resourceconfiguratiebestand voorbereidenvoor meer informatie. Als alternatief voor deze switch kunt u de -j- en -k-switches gebruiken, maar het is de voorkeur om een resourceconfiguratiebestand te gebruiken. Met behulp van de -q-switch met een resourceconfiguratiebestand kunt u een splitsing op basis van items implementeren en kenmerken opgeven die uiteindelijk de binaire resourceconfiguratie in het LN- en taalspecifieke resourcebestand opleveren. Deze splitsing is niet mogelijk met de schakelopties -j en -k. Opmerking: Het splitsproces rc compiler werkt niet goed als u resources en versiegegevens opslaat in verschillende resourceconfiguratiebestanden. In dit geval splitst RC Compiler de versiegegevens niet. Daarom treedt er een linkerfout op tijdens het koppelen van het taalspecifieke resourcebestand, omdat het bestand geen versieresources heeft. |
-g | Hiermee geeft u de ultieme terugvaltaal id in hexadecimaal. |
-g1 | Hiermee maakt u een MUI .res-bestand, zelfs als de VERSION-resource de enige lokaliseerbare inhoud is. RC Compiler produceert standaard geen .res-bestand als VERSION de enige lokaliseerbare resource is. |
-g2 | Hiermee geeft u het aangepaste versienummer dat moet worden gebruikt bij het berekenen van de controlesom. |
mui_res_name | Resourcebestand voor taalspecifieke resources. |
rc_config_file_name | Resourceconfiguratiebestand. |
langid | Taal-id. |
Versie | Aangepast versienummer, in een indeling zoals '6.2.0.0'. |
Voorbeeld voor het gebruik van RC Compiler om MUI-resources te bouwen
Laten we de volgende opdrachtregel bekijken voor het resourcebestand Myfile.rc om de werking van RC Compiler met MUI-resources te illustreren:
rc -fm myfile_res.res -q myfile.rcconfig myfile.rc
Deze opdrachtregel zorgt ervoor dat RC Compiler het volgende doet:
- Maak het taalspecifieke resourcebestand Myfile_res.res en een taalneutraal resourcebestand dat standaard myfile.res is, op basis van de naam van het RC-bestand.
- Voeg de 2 (item 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE resourcetypen toe aan het taalspecifieke RES-bestand als ze zich in het RC-bestand bevinden.
- Voeg resourcetype 16 toe, samen met eventuele andere resourcetypen die in het resourcebestand worden beschreven, aan het taalneutrale RES-bestand en aan het taalspecifieke .res-bestand. In dit voorbeeld wordt resourcetype 16 op twee plaatsen toegevoegd.
- Kies de kenmerkwaarde UltimateFallbackLanguage die u wilt invoegen in de resourceconfiguratiegegevens van het LN-bestand op basis van de volgende criteria, gesorteerd van hoogste prioriteit tot laagste:
- Het kenmerk UltimateFallbackLanguage in het resourceconfiguratiebestand als er een wordt doorgegeven als invoer.
- De waarde van het taalkenmerk die moet worden ingevoegd in de resourceconfiguratiegegevens op basis van de taalvolgorde van de RC Compiler (taalneutraal en taalspecifieke bronbestandstaal). Overwegingen zijn onder andere taal in het RC-bestand, de taalwaarde van de -gl switch en id-0x0409 voor Engels (Verenigde Staten).
Opmerkingen
Als u icon(3), DIALOG(5), STRING(6) of VERSION(16) resourcetype opneemt in het neutralResources-element, moet u die vermelding dupliceren in het element localizedResources in het resourceconfiguratiebestand.
Verwante onderwerpen