Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano dwa narzędzia używane do tworzenia aplikacji MUI. Chociaż MUIRCT to narzędzie specyficzne dla interfejsu MUI, interfejs MUI korzysta również ze standardowego narzędzia kompilatora windows RC. Instrukcje dotyczące korzystania z tych narzędzi znajdują się w lokalizowanie zasobów i tworzenie aplikacji.
NARZĘDZIE MUIRCT
MUIRCT (Muirct.exe) to narzędzie wiersza polecenia do dzielenia standardowego pliku wykonywalnego na plik LN i pliki zasobów specyficzne dla języka (czyli lokalizowalne). Każdy z wynikowych plików zawiera dane konfiguracji zasobów dla skojarzenia plików. Usługa MUIRCT jest zawarta w zestawie Microsoft Windows SDK dla systemu Windows Vista.
Nuta
Począwszy od systemu Windows Vista, moduł ładujący zasobów Win32 jest aktualizowany w celu załadowania zasobów z plików specyficznych dla języka, a także z plików LN.
Użycie MUIRCT
Podziel plik binarny na główny plik binarny i mui na podstawie pliku 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]Wyodrębnij sumę kontrolną z checksum_file i wstaw ją w output_file.
Muirct -c checksum_file [-b LangID] -e output_fileOblicz sumę kontrolną na podstawie checksum_file i wstaw ją w output_file.
Muirct -c checksum_file [-b LangID] -q rc_config -z output_fileZrzuć zawartość danych konfiguracji zasobów z input_file.
Muirct -d input_file
Składnia MUIRCT
FUNKCJA MUIRCT może podjąć kierunek z przełączników wiersza polecenia i/lub z pliku konfiguracji zasobu określonego przy użyciu przełącznika -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]
przełączniki i argumenty
| Opcja | Cel |
|---|---|
| -h lub -? | Wyświetla ekran pomocy. |
| -c | Określa checksum_file danych wejściowych, z których ma być wyodrębnianie lub obliczanie sumy kontrolnej zasobów. Checksum_file musi być plikiem binarnym Win32 zawierającym zasoby lokalizowalne. Jeśli checksum_file zawiera zasoby dla więcej niż jednego języka, należy użyć przełącznika -b, aby określić, które z nich powinny być używane, w przeciwnym razie funkcja MUIRCT nie powiedzie się. |
| -b | Określa język, który ma być używany, gdy checksum_file określony za pomocą -c zawiera zasoby w wielu językach. Tego przełącznika można używać tylko w połączeniu z przełącznikiem -c. Identyfikator języka może mieć format dziesiętny lub szesnastkowy. Funkcja MUIRCT kończy się niepowodzeniem, jeśli checksum_file zawiera zasoby w wielu językach, a -b nie zostanie określony lub jeśli nie można odnaleźć języka określonego przez przełącznik -b w checksum_file. |
| -g | Określa identyfikator języka, który ma być uwzględniony jako ostateczny język rezerwowy w sekcji danych konfiguracji zasobów pliku LN. Jeśli moduł ładujący zasobów nie może załadować żądanego pliku mui z preferowanych języków interfejsu użytkownika wątku, używa ostatecznego języka rezerwowego jako ostatniej próby. Wartość LangID można określić w formacie dziesiętny lub szesnastkowym. Na przykład angielski (Stany Zjednoczone) można określić przez -g 0x409 lub -g 1033. |
| -q | Określa, że source_file ma być podzielony na output_LN_file i output_MUI_file zgodnie z układem pliku rc_config. Plik rc_config jest plikiem w formacie XML, który określa, które zasoby zostaną wyodrębnione do pliku mui i które zostaną pozostawione w pliku LN. Rc_config może określać rozkład typów zasobów i poszczególnych nazwanych elementów między output_LN_file i output_MUI_file. Source_file musi być plikiem binarnym Win32 zawierającym zasoby w jednym języku. W przeciwnym razie funkcja MUIRCT kończy się niepowodzeniem. MUIRCT nie dzieli pliku, jeśli jest neutralny dla języka, który jest wskazywany tylko przez wartość identyfikatora języka 0 w pliku. Output_LN_file i output_mui_file to nazwy pliku neutralnego języka i mui, w którym jest podzielony source_file. Te nazwy plików są opcjonalne. Jeśli nie zostaną określone, funkcja MUIRCT dołącza rozszerzenia .ln i mui do source_file. Zazwyczaj przed wdrożeniem pliku należy usunąć rozszerzenie ".ln". Funkcja MUIRCT kojarzy output_LN_file i output_MUI_file, obliczając sumę kontrolną na podstawie nazwy source_file i wersji pliku oraz wstawiając wynik do sekcji konfiguracji zasobów każdego pliku wyjściowego. W połączeniu z przełącznikiem -c przełącznik -q ma pierwszeństwo. Jeśli plik rc_config dostarczony z przełącznikiem -q zawiera sumę kontrolną MUIRCT ignoruje przełącznik -c i wstawia wartość sumy kontrolnej z wartości, rc_config pliku do plików LN i.mui. Jeśli w rc_config nie zostanie znaleziona żadna wartość sumy kontrolnej, funkcja MUIRCT oblicza sumę kontrolną zasobów na podstawie zachowania przełącznika -c. |
| -v | Określa poziom szczegółowości rejestrowania. Określ wartość 1, aby wydrukować wszystkie podstawowe komunikaty o błędach i wyniki operacji. Określ wartość 2, aby również uwzględnić informacje o zasobie (typ, nazwę, identyfikator języka) zawarte w pliku mui i pliku LN. Wartość domyślna to -v 1 |
| -x | Określa identyfikator języka, za pomocą którego MUIRCT oznacza wszystkie typy zasobów dodane do sekcji zasobów pliku mui. Wartość LangID można określić w formacie dziesiętny lub szesnastkowym. Na przykład angielski (Stany Zjednoczone) można określić przez -x 0x409 lub -x 1033. |
| -e | Wyodrębnia sumę kontrolną zasobów zawartą w checksum_file dostarczonej z przełącznikiem -c i wstawia ją do określonego output_file. Po określeniu -e MUIRCT ignoruje wszystkie przełączniki inne niż przełącznik -c. W tym przypadku checksum_file musi być plikiem binarnym Win32 zawierającym sekcję danych konfiguracji zasobów z wartością sumy kontrolnej. Output_file musi być istniejącym plikiem LN lub plikiem mui. |
| -z | Oblicza i wstawia dane sumy kontrolnej zasobów w określonym pliku wyjściowym. Funkcja MUIRCT oblicza sumę kontrolną danych wejściowych dostarczanych z przełącznikiem -c i opcjonalnym przełącznikiem -b. Jeśli określisz plik wyjściowy przełącznika -z, który nie istnieje, muIRCT kończy działanie z powodu błędu. Przykład: oblicza sumę kontrolną na podstawie zasobów lokalizowalnych w Notepad.exe i wstawia sumę kontrolną do pliku wyjściowego Notepad2.exe. muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe |
| -f | Umożliwia utworzenie pliku mui z zasobem wersji, który jest jedynym zasobem lokalizowalnym. Domyślnie funkcja MUIRCT nie zezwala na to. |
| -d | Lokalizuje i wyświetla osadzone dane konfiguracji zasobów w pliku źródłowym. Po określeniu tego przełącznika MUIRCT ignoruje wszystkie inne opcje wiersza polecenia. |
| -m | Określa numer wersji do użycia podczas obliczania sumy kontrolnej dla skojarzenia output_LN_file i output_MUI_file. |
| source_filename | Nazwa zlokalizowanego pliku źródłowego binarnego; nie można używać symboli wieloznacznych. Ten plik może zawierać tylko zasoby w jednym języku. Jeśli w pliku znajdują się zasoby w wielu językach, funkcja MUIRCT kończy się niepowodzeniem, chyba że zostanie użyty przełącznik -b. Jeśli plik zawiera zasoby z identyfikatorami języka o wartości 0, muIRCT nie dzieli pliku, ponieważ identyfikator języka 0 wskazuje neutralny język. W przypadku przełącznika -d source_filename jest plikiem LN lub plikiem zasobów specyficznym dla języka, dla którego muIRCT ma wyświetlać dane konfiguracji zasobów. |
| language_neutral_filename | Fakultatywny. Nazwa pliku LN. Jeśli nie określisz nazwy tego pliku, MUIRCT dołącza drugie rozszerzenie ".ln" do nazwy pliku źródłowego, które będzie używane jako nazwa pliku neutralnego dla języka. Zazwyczaj przed wdrożeniem pliku należy usunąć rozszerzenie ".ln".
Uwaga: Plik LN nie powinien zawierać ciągów ani menu. Należy je usunąć ręcznie. |
| mui_filename | Fakultatywny. Nazwa pliku zasobu specyficznego dla języka. Jeśli nie określisz nazwy, funkcja MUIRCT dołącza drugie rozszerzenie ".mui" do nazwy pliku źródłowego, które będzie używane jako nazwa pliku. Zwykle muIRCT tworzy plik zasobów specyficzny dla języka. Jednak nie tworzy pliku zasobu, jeśli istnieją jakiekolwiek z następujących warunków:
|
Dane wyjściowe języka MUIRCT
MUIRCT wybiera wartość atrybutu "UltimateFallbackLanguage", aby wstawić dane konfiguracji zasobów pliku LN na podstawie następującej kolejności, od najwyższego priorytetu do najniższego:
- Atrybut "UltimateFallbackLanguage" w pliku konfiguracji zasobu źródłowego, jeśli został przekazany jako dane wejściowe.
- Język określony za pomocą przełącznika -g.
- Język plików wejściowych.
FUNKCJA MUIRCT wybiera wartość atrybutu "language", aby wstawić dane konfiguracji zasobów pliku mui na podstawie następującej kolejności:
- Atrybut "language" w pliku konfiguracji zasobu źródłowego, jeśli jest przekazywany jako dane wejściowe.
- Język określony przez przełącznik -x (wymuś język).
- Język plików wejściowych.
Obsługa sumy kontrolnej MUIRCT
System operacyjny zwykle oblicza sumę kontrolną zasobów specyficznych dla języka w pliku, chyba że zostanie określona suma kontrolna za pośrednictwem pliku konfiguracji zasobu. Jeśli suma kontrolna jest taka sama dla pliku LN i wszystkich skojarzonych plików zasobów specyficznych dla języka, a atrybut języka w konfiguracji zasobów w LN i zależny od języka, moduł ładujący zasobów może pomyślnie załadować zasoby.
Funkcja MUIRCT obsługuje kilka metod umieszczania odpowiednich sum kontrolnych w danych konfiguracji zasobów:
- Utwórz plik wykonywalny dla każdego języka zawierający zarówno kod, jak i zasoby. Następnie użyj funkcji MUIRCT, aby podzielić każdy z tych plików na plik LN i plik zasobów specyficzny dla języka. Funkcja MUIRCT jest uruchamiana wiele razy, raz w celu wygenerowania pliku zasobów dla każdego języka. Kompilację można wykonać w następujący sposób:
- Użyj przełącznika -q, aby określić wartość sumy kontrolnej w pliku konfiguracji zasobu. MUIRCT umieszcza tę wartość we wszystkich utworzonych plikach LN i plikach zasobów specyficznych dla języka. Należy zastosować strategię wybierania tej wartości zgodnie z opisem w dalszej części tego tematu.
- Użyj przełącznika -c (i, opcjonalnie, przełącznika -b), aby wybrać jeden język zawierający zasoby, z których MUIRCT wyodrębnia sumę kontrolną.
- Użyj przełącznika -z, aby wybrać pojedynczy język zawierający zasoby, z których funkcja MUIRCT zawsze wyodrębnia sumę kontrolną. Zastosuj tę sumę kontrolną po skompilowaniu plików przy użyciu innych metod.
- Utwórz plik wykonywalny zawierający zarówno kod, jak i zasoby dla pojedynczego języka. Następnie użyj funkcji MUIRCT, aby podzielić zasoby między plik LN i plik zasobów specyficzny dla języka. Na koniec użyj binarnego narzędzia lokalizacji, aby zmodyfikować wynikowy plik zasobów dla każdego języka.
Najczęstszą konwencją obsługi sumy kontrolnej jest oparcie sumy kontrolnej na zasobach języka angielskiego (Stanów Zjednoczonych). Możesz przyjąć inną konwencję, o ile jest ona spójna dla każdego pliku LN. Na przykład jest to całkowicie dopuszczalne, aby przedsiębiorstwo programistyczne opierało swoje sumy kontrolne w oprogramowaniu opartym na zasobach francuskich (Francja) zamiast zasobów angielskich (Stanów Zjednoczonych), o ile wszystkie aplikacje mają zasoby francuskie (Francja), na których bazują sumy kontrolne. Dopuszczalne jest również użycie pliku konfiguracji zasobu w celu przypisania dowolnej wartości szesnastkowej do 16 cyfr szesnastkowej jako sumy kontrolnej. Ostatnia strategia uniemożliwia skuteczne stosowanie przełączników MUIRCT -z, -c i -b. Wymaga wdrożenia metody przy użyciu GuidGen lub innego narzędzia do generowania wartości sumy kontrolnej. Ta strategia wymaga również skonfigurowania zasad określania, kiedy należy zmodyfikować wartość podczas dodawania nowych zasobów lokalizowalnych.
Aby zastosować sumę kontrolną języka angielskiego (Stany Zjednoczone) do wszystkich plików, możesz użyć dowolnej z metod obsługi sum kontrolnych opisanych powyżej. Możesz na przykład wygenerować plik LN i plik zasobów specyficzny dla języka dla języka angielskiego (Stany Zjednoczone), a następnie użyć przełącznika MUIRCT -d, aby uzyskać wynikową sumę kontrolną. Tę sumę kontrolną można skopiować do pliku konfiguracji zasobu i użyć przełącznika -q z funkcją MUIRCT, aby zastosować sumę kontrolną do wszystkich innych plików.
Korzystanie z pliku konfiguracji zasobów w usłudze MUIRCT
Podczas korzystania z funkcji MUIRCT można określić dane konfiguracji zasobów. Bez względu na to, czy jawnie podasz plik konfiguracji zasobów, każdy plik zasobów specyficzny dla języka zawiera dane konfiguracji zasobów, podobnie jak dowolny plik LN ze skojarzonym plikiem zasobów. Na przykład:
- Jeśli używasz przełącznika -q w celu określenia pliku konfiguracji zasobu, ale w pliku źródłowym danych wejściowych nie ma żadnych zasobów lokalizowalnych, nie jest generowany żaden plik zasobów specyficzny dla języka, a wynikowy plik LN nie zawiera danych konfiguracji zasobów. Ponadto jeśli plik źródłowy danych wejściowych ma wielojęzyczne zasoby, funkcja MUIRCT nie podzieli pliku.
Nuta
Obecnie zachowanie muIRCT jest niespójne, gdy element neutralResources pliku konfiguracji zasobu nie zawiera żadnych elementów resourceType, a zlokalizowany elementResources zawiera na przykład ciągi i menu. W takim przypadku funkcja MUIRCT dzieli zasoby w następujący sposób:
- Wszystkie zasoby w oryginalnym pliku binarnym (w tym ciągi i menu) oraz zasoby MUI są umieszczane w pliku LN.
- Ciągi, menu i zasoby MUI są umieszczane w odpowiednim pliku zasobów specyficznych dla języka.
Przykłady użycia MUIRCT
przykłady użycia standardowego
muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui
muirct -d myprog.exe.mui
przykład danych wyjściowych pliku LN przy użyciu przełącznika -d
Oto przykład danych wyjściowych konfiguracji zasobów z pliku LN, Shell32.dll, przy użyciu przełącznika -d z 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
przykład danych wyjściowych pliku zasobów Language-Specific przy użyciu przełącznika -d
Oto przykład danych wyjściowych konfiguracji zasobów z pliku mui, Shell32.dll.mui, przy użyciu przełącznika -d dla 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
Narzędzie kompilatora RC
Kompilator RC (Rc.exe) to narzędzie wiersza polecenia służące do kompilowania pliku skryptu definicji zasobów (rozszerzenie rc) do plików zasobów (rozszerzenie res). Kompilator RC jest dołączony do zestawu Windows SDK. W tym dokumencie wyjaśniono tylko użycie kompilatora RC z funkcjami związanymi z interfejsem MUI modułu ładującego zasoby. Aby uzyskać pełne informacje na temat kompilatora, zobacz About Resource Files.
Kompilator RC umożliwia tworzenie pojedynczego zestawu źródeł, pliku LN i oddzielnego pliku zasobu specyficznego dla języka. Jeśli chodzi o MUIRCT, pliki są skojarzone z danymi konfiguracji zasobów.
Składnia kompilatora RC używana dla zasobów MUI
Przełączniki kompilatora RC są szczegółowo zdefiniowane w using RC. Ta sekcja definiuje tylko przełączniki używane do tworzenia zasobów MUI. Należy pamiętać, że każdy przełącznik nie uwzględnia wielkości liter. Przyjmuje się, że typy zasobów są neutralne pod względem języka, chyba że określono inaczej.
rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]
przełączniki i argumenty
| Opcja | Funkcja |
|---|---|
| -h lub -? | Wyświetla ekran pomocy. |
| -Fm | Używa określonego pliku zasobów dla zasobów specyficznych dla języka. Zwykle kompilator zasobów tworzy plik zasobów specyficzny dla języka. Nie tworzy jednak pliku, jeśli istnieją jakiekolwiek z następujących warunków:
|
| -q | Używa określonego pliku konfiguracji zasobów, aby uzyskać typy zasobów do umieszczenia w pliku zasobów specyficznym dla języka i pliku LN. Aby uzyskać więcej informacji, zobacz Przygotowywanie pliku konfiguracji zasobów. Alternatywą dla tego przełącznika jest użycie przełączników -j i -k, ale preferowane jest użycie pliku konfiguracji zasobów. Korzystając z przełącznika -q z plikiem konfiguracji zasobów, można zaimplementować podział oparty na elementach i podać atrybuty, które zakończą się konfiguracją zasobów binarnych w pliku zasobów specyficznych dla języka i LN. Ten podział nie jest możliwy przy użyciu przełączników -j i -k. Uwaga: Proces podziału kompilatora RC nie działa prawidłowo, jeśli przechowujesz zasoby i informacje o wersji w różnych plikach konfiguracji zasobów. W takim przypadku kompilator RC nie dzieli informacji o wersji. W związku z tym podczas łączenia pliku zasobów specyficznego dla języka występuje błąd konsolidatora, ponieważ plik nie ma zasobów wersji. |
| -g | Określa ostateczny rezerwowy język identyfikator w szesnastkowym. |
| -g1 | Tworzy plik RES interfejsu MUI, nawet jeśli zasób VERSION jest jedyną zawartością lokalizacyjną. Domyślnie kompilator RC nie generuje pliku res, jeśli WERSJA jest jedynym zasobem lokalizowalnym. |
| -g2 | Określa niestandardowy numer wersji do użycia podczas obliczania sumy kontrolnej. |
| mui_res_name | Plik zasobów dla zasobów specyficznych dla języka. |
| rc_config_file_name | Plik konfiguracji zasobu. |
| langid | Identyfikator języka. |
| Wersja | Niestandardowy numer wersji w formacie takim jak "6.2.0.0". |
Przykład użycia kompilatora RC do kompilowania zasobów MUI
Aby zilustrować operację kompilatora RC z zasobami MUI, przyjrzyjmy się następującemu wierszowi polecenia dla pliku zasobu Myfile.rc:
rc -fm myfile_res.res -q myfile.rcconfig myfile.rc
Ten wiersz polecenia powoduje, że kompilator RC wykonuje następujące czynności:
- Utwórz plik zasobów specyficzny dla języka Myfile_res.res i plik zasobu neutralnego dla języka, który domyślnie ma wartość Myfile.res, na podstawie nazwy pliku RC.
- Dodaj 2 (element 5 6 7 8 9 10 11 12), 4, 5, 6, 9, 11, 16, 23, 240, 1024 MY_TYPE typów zasobów do pliku res specyficznego dla języka, jeśli znajdują się w pliku rc.
- Dodaj typ zasobu 16 wraz z innymi typami zasobów opisanymi w pliku zasobów do pliku zasobów neutralnego dla języka pliku res i do pliku res specyficznego dla języka. Należy pamiętać, że w tym przykładzie typ zasobu 16 jest dodawany w dwóch miejscach.
- Wybierz wartość atrybutu "UltimateFallbackLanguage", aby wstawić do danych konfiguracji zasobów pliku LN na podstawie następujących kryteriów uporządkowanych od najwyższego priorytetu do najniższego:
- Atrybut "UltimateFallbackLanguage" w pliku konfiguracji zasobu, jeśli został przekazany jako dane wejściowe.
- Wartość atrybutu języka do wstawienia w danych konfiguracji zasobów na podstawie kolejności języka kompilatora RC (język neutralny i język specyficzny dla języka języka). Zagadnienia obejmują język w pliku RC, wartość języka przełącznika -gl i identyfikator 0x0409 dla języka angielskiego (Stany Zjednoczone).
Uwagi
Jeśli dołączysz dowolny typ zasobu ICON(3), DIALOG(5), STRING(6) lub VERSION(16) w elemecie neutralResources, musisz zduplikować ten wpis w zlokalizowanym elemecieResources w pliku konfiguracji zasobu.
Tematy pokrewne
-
lokalizowanie zasobów i tworzenie aplikacji