リソース ユーティリティ
このトピックでは、MUI アプリケーションのビルドに使用される 2 つのユーティリティについて説明します。 MUIRCT は MUI 固有のツールですが、MUI では標準の Windows RC コンパイラ ユーティリティも使用されます。 これらのユーティリティを使用する手順については、「リソースのローカライズとアプリケーションのビルド」を参照してください。
MUIRCT ユーティリティ
MUIRCT (Muirct.exe) は、標準の実行可能ファイルを LN ファイルと言語固有の (つまりローカライズ可能な) リソース ファイルに分割するためのコマンド ライン ユーティリティです。 結果の各ファイルには、ファイルの関連付けのリソース構成データが含まれています。 MUIRCT は、Windows Vista 用 Microsoft Windows SDK に含まれています。
手記
Windows Vista 以降では、Win32 リソース ローダーが更新され、言語固有のファイルと LN ファイルからリソースが読み込まれます。
MUIRCT の使用法
バイナリをメインバイナリに分割し、ファイルに基づいてmuiファイル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]
checksum_fileからチェックサムを抽出し、output_fileに挿入します。
Muirct -c checksum_file [-b LangID] -e output_file
checksum_fileに基づいてチェックサムを計算し、output_fileに挿入します。
Muirct -c checksum_file [-b LangID] -q rc_config -z output_file
input_fileからリソース構成データの内容をダンプします。
Muirct -d input_file
MUIRCT 構文
MUIRCT は、コマンド ライン スイッチや、-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]
スイッチと引数の
オプション | 目的 |
---|---|
-h または -? | ヘルプ画面を表示します。 |
-c | リソース チェックサムの抽出または計算に使用する入力checksum_fileを指定します。 Checksum_fileは、ローカライズ可能なリソースを含む Win32 バイナリ ファイルである必要があります。 checksum_fileに複数の言語のリソースが含まれている場合は、-b スイッチを使用して、使用する必要がある言語を指定する必要があります。それ以外の場合は MUIRCT が失敗します。 |
-b | -c で指定したchecksum_fileに複数の言語のリソースが含まれている場合に使用する言語を指定します。 このスイッチは、-c スイッチと組み合わせてのみ使用できます。 言語識別子は、10 進数または 16 進数の形式で指定できます。 checksum_fileに複数の言語のリソースが含まれており、-b が指定されていない場合、または -b スイッチで指定された言語がchecksum_fileで見つからない場合、MUIRCT は失敗します。 |
-g | LN ファイルのリソース構成データ セクションに最終的なフォールバック言語として含める言語 ID を指定します。 リソース ローダーがスレッド優先 UI 言語から要求された .mui ファイルを読み込めなければ、最後の試行として最終的なフォールバック言語が使用されます。 LangID 値は、10 進数または 16 進数の形式で指定できます。 たとえば、英語 (米国) は、-g 0x409 または -g 1033 で指定できます。 |
-q | source_fileを、rc_config ファイル レイアウトに従ってoutput_LN_fileとoutput_MUI_fileに分割することを指定します。 rc_config ファイルは、.mui ファイルに抽出されるリソースと LN ファイルに残されるリソースを指定する XML 形式のファイルです。 rc_configでは、リソースの種類と、output_LN_fileとoutput_MUI_file間の個々の名前付き項目の分散を指定できます。 source_fileは、単一言語のリソースを含む Win32 バイナリである必要があります。そうしないと、MUIRCT が失敗します。 MUIRCT は、ファイル内に言語 ID 値 0 のみを持つことで示される言語に依存しない場合、ファイルを分割しません。 output_LN_fileとoutput_mui_fileは、source_fileが分割される言語に依存しないファイルと .mui ファイルの名前です。 これらのファイル名は省略可能です。 指定されていない場合、MUIRCT は拡張子 .ln と .mui をsource_fileに追加します。 通常は、ファイルをデプロイする前に ".ln" 拡張子を削除する必要があります。 MUIRCT は、output_LN_fileとoutput_MUI_fileを関連付けます。source_file名とファイルのバージョンに基づいてチェックサムを計算し、各出力ファイルのリソース構成セクションに結果を挿入します。 -c スイッチと組み合わせて使用すると、-q スイッチが優先されます。 -q スイッチに指定されたrc_config ファイルにチェックサム MUIRCT が含まれている場合、-c スイッチは無視され、値のチェックサム値rc_configファイルが LN および.mui ファイルに挿入されます。 rc_configにチェックサム値が見つからない場合、MUIRCT は、-c スイッチの動作に基づいてリソース チェックサムを計算します。 |
-v | ログ記録の詳細レベルを指定します。 すべての基本的なエラー メッセージと操作結果を出力するには、1 を指定します。 .mui ファイルと LN ファイルに含まれるリソース情報 (型、名前、言語識別子) も含めるには、2 を指定します。 既定値は -v 1 です |
-x | .mui ファイルのリソース セクションに追加されたすべてのリソースの種類を MUIRCT がマークする言語 ID を指定します。 LangID 値は、10 進数または 16 進数の形式で指定できます。 たとえば、英語 (米国) は、-x 0x409 または -x 1033 で指定できます。 |
-e | -c スイッチで提供されるchecksum_fileに含まれるリソース チェックサムを抽出し、指定したoutput_fileに挿入します。 -e を指定すると、MUIRCT は、-c スイッチ以外のすべてのスイッチを無視します。 この場合、checksum_fileは、チェックサム値を持つリソース構成データ セクションを含む Win32 バイナリ ファイルである必要があります。 output_fileは、既存の LN ファイルまたは .mui ファイルである必要があります。 |
-z | 指定した出力ファイルにリソース チェックサム データを計算して挿入します。 MUIRCT は、-c スイッチとオプションの -b スイッチで提供される入力にチェックサム計算を基にしています。 存在しない -z スイッチの出力ファイルを指定すると、MUIRCT はエラーで終了します。 例: Notepad.exe のローカライズ可能なリソースに基づいてチェックサムを計算し、チェックサムを出力ファイル Notepad2.exeに挿入します。 muirct -c notepad.exe -q myprog.rcconfig -z notepad2.exe |
-f | バージョン リソースが唯一のローカライズ可能なリソースである .mui ファイルを作成できるようにします。 既定では、MUIRCT はこれを許可しません。 |
-d | ソース ファイル内の埋め込みリソース構成データを検索して表示します。 このスイッチを指定すると、MUIRCT は他のすべてのコマンド ライン オプションを無視します。 |
-m | output_LN_fileとoutput_MUI_fileを関連付けるためにチェックサムを計算するときに使用するバージョン番号を指定します。 |
source_filename | ローカライズされたバイナリ ソース ファイルの名前。ワイルドカードは使用できません。 このファイルには、1 つの言語のリソースのみを含めることができます。 ファイルに複数の言語のリソースがある場合、-b スイッチを使用しない限り、MUIRCT は失敗します。 値が 0 のみの言語識別子を持つリソースがファイルに含まれている場合、言語識別子 0 はニュートラル言語を示しているため、MUIRCT はファイルを分割しません。 -d スイッチの場合、source_filenameは LN ファイルか、リソース構成データを表示する MUIRCT の言語固有のリソース ファイルです。 |
language_neutral_filename | 随意。 LN ファイルの名前。 このファイルの名前を指定しない場合、MUIRCT は、言語に依存しないファイル名として使用する 2 つ目の拡張子 ".ln" をソース ファイル名に追加します。 通常は、ファイルをデプロイする前に ".ln" 拡張子を削除する必要があります。
注: LN ファイルには文字列やメニューを含めてはなりません。 手動で削除する必要があります。 |
mui_filename | 随意。 言語固有のリソース ファイルの名前。 名前を指定しない場合、MUIRCT は、ファイル名として使用するソース ファイル名に 2 つ目の拡張子 ".mui" を追加します。通常、MUIRCT は言語固有のリソース ファイルを作成します。 ただし、次のいずれかの条件が存在する場合、リソース ファイルは作成されません。
|
MUIRCT 言語の出力
MUIRCT は、次の順序に基づいて LN ファイルリソース構成データに挿入する "UltimateFallbackLanguage" 属性値を、優先順位が最も高いものから最も低いものまで選択します。
- ソース リソース構成ファイルの "UltimateFallbackLanguage" 属性 (入力として渡される場合)。
- -g スイッチで指定された言語。
- 入力ファイルの言語。
MUIRCT は、次の順序に基づいて 、.mui ファイルリソース構成データに挿入する "language" 属性値を選択します。
- ソース リソース構成ファイルの "language" 属性 (入力として渡される場合)。
- -x スイッチで指定された言語 (強制言語)。
- 入力ファイルの言語。
MUIRCT チェックサム処理
通常、オペレーティング システムは、リソース構成ファイルでチェックサムを指定しない限り、ファイル内の言語固有のリソースに対してチェックサムを計算します。 チェックサムが LN ファイルおよび関連するすべての言語固有リソース ファイルに対して同じであり、LN のリソース構成の言語属性と言語依存の一致がある限り、リソース ローダーはリソースを正常に読み込むことができます。
MUIRCT では、リソース構成データに適切なチェックサムを配置するためのいくつかの方法がサポートされています。
- コードとリソースの両方を含む各言語の実行可能ファイルをビルドします。 その後、MUIRCT を使用して、これらの各ファイルを LN ファイルと言語固有のリソース ファイルに分割します。 MUIRCT は複数回実行され、言語ごとにリソース ファイルが生成されます。 ビルドは次の方法で実行できます。
- -q スイッチを使用して、リソース構成ファイルのチェックサム値を指定します。 MUIRCT は、生成されたすべての LN ファイルと言語固有のリソース ファイルにこの値を配置します。 このトピックで後述するように、この値を選択するための戦略を採用する必要があります。
- -c スイッチ (および必要に応じて、-b スイッチ) を使用して、MUIRCT がチェックサムを抽出するリソースを持つ 1 つの言語を選択します。
- -z スイッチを使用して、MUIRCT が常にチェックサムを抽出するリソースを持つ 1 つの言語を選択します。 他の方法を使用してファイルがビルドされた後に、このチェックサムを適用します。
- 1 つの言語のコードとリソースの両方を含む実行可能ファイルをビルドします。 その後、MUIRCT を使用して、LN ファイルと言語固有のリソース ファイルの間でリソースを分割します。 最後に、バイナリ ローカライズ ツールを使用して、各言語の結果のリソース ファイルを変更します。
チェックサム処理の最も一般的な規則は、英語 (米国) のリソースにチェックサムを基にすることです。 LN ファイルごとに一貫性がある限り、異なる規則を自由に採用できます。 たとえば、すべてのアプリケーションにチェックサムの基となるフランス語 (フランス) リソースがある限り、ソフトウェア開発企業は、英語 (米国) リソースではなくフランス語 (フランス) リソースに基づいてチェックサムを作成できます。 また、リソース構成ファイルを使用して、チェックサムとして最大 16 桁の 16 進数の任意の 16 進数を割り当てることもできます。 この最後の戦略では、MUIRCT の -z、-c、および -b スイッチの効果的な使用は除外されます。 GuidGen またはその他のツールを使用してチェックサム値を生成する方法を採用する必要があります。 また、この方法では、ローカライズ可能な新しいリソースを追加するときに値を変更するタイミングを決定するためのポリシーを設定する必要もあります。
英語 (米国) チェックサムをすべてのファイルに適用するには、上記のチェックサム処理方法のいずれかを使用できます。 たとえば、英語 (米国) の LN ファイルと言語固有のリソース ファイルを生成し、MUIRCT -d スイッチを使用して結果のチェックサムを取得できます。 このチェックサムをリソース構成ファイルにコピーし、MUIRCT で -q スイッチを使用して、チェックサムを他のすべてのファイルに適用できます。
MUIRCT でのリソース構成ファイルの使用
MUIRCT を使用する場合は、リソース構成データを指定できます。 リソース構成ファイルを明示的に指定するかどうかに関係なく、すべての言語固有のリソース ファイルには、関連付けられているリソース ファイルを含む LN ファイルと同様に、リソース構成データがあります。 例えば:
- -q スイッチを使用してリソース構成ファイルを指定するが、入力ソース ファイルにローカライズ可能なリソースがない場合、言語固有のリソース ファイルは生成されず、結果の LN ファイルにはリソース構成データが含まれません。 また、入力ソース ファイルに多言語リソースがある場合、MUIRCT はファイルを分割しません。
手記
現在、リソース構成ファイルの neutralResources 要素に resourceType 要素がなく、localizedResources 要素に文字列やメニューが含まれている場合、MUIRCT の動作は一貫性がありません。 このような場合、MUIRCT はリソースを次のように分割します。
- 元のバイナリ内のすべてのリソース (文字列とメニューを含む) と MUI リソースは、LN ファイルに配置されます。
- 文字列、メニュー、および MUI リソースは、適切な言語固有のリソース ファイルに配置されます。
MUIRCT の使用例
標準使用 の 例
muirct -q mui.MMF bar.exe barnew.exe barnew.exe.mui
muirct -d myprog.exe.mui
-d スイッチ を使用した LN ファイル出力の 例
MUIRCT で -d スイッチを使用して LN ファイル Shell32.dllから出力されるリソース構成データの例を次に示します。
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
-d スイッチ を使用したリソース ファイル出力 Language-Specific の例
MUIRCT の -d スイッチを使用して、.mui ファイル Shell32.dll.mui から出力されるリソース構成データの例を次に示します。
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 コンパイラ ユーティリティ
RC コンパイラ (Rc.exe) は、リソース定義スクリプト ファイル (.rc 拡張子) をリソース ファイル (.res 拡張子) にコンパイルするためのコマンド ライン ユーティリティです。 RC コンパイラは Windows SDK に含まれています。 このドキュメントでは、リソース ローダーの MUI 関連機能での RC コンパイラの使用についてのみ説明します。 コンパイラの詳細については、「リソース ファイルのについて」を参照してください。
RC コンパイラを使用すると、1 つのソース セット、LN ファイル、および個別の言語固有のリソース ファイルをビルドできます。 MUIRCT に関しては、ファイルはリソース構成データによって関連付けられます。
MUI リソースに使用される RC コンパイラ構文
RC コンパイラ スイッチの詳細については、「RC を使用する」を参照してください。 このセクションでは、MUI リソースの構築に使用されるスイッチのみを定義します。 各スイッチでは大文字と小文字が区別されません。 リソースの種類は、特に指定がない限り、言語に依存しないと見なされます。
rc [-h|-?] -fm mui_res_name [-q rc_config_file_name] [-g langid] [-g1 ] [-g2 version]
スイッチと引数の
オプション | 機能 |
---|---|
-h または -? | ヘルプ画面を表示します。 |
-エフエム | 言語固有のリソースに指定されたリソース ファイルを使用します。 通常、リソース コンパイラは言語固有のリソース ファイルを作成します。 ただし、次のいずれかの条件が存在する場合、ファイルは作成されません。
|
-q | 指定されたリソース構成ファイルを使用して、言語固有のリソース ファイルと LN ファイルに配置するリソースの種類を取得します。 詳細については、「リソース構成ファイルの準備」を参照してください。 このスイッチの代わりに、-j スイッチと -k スイッチを使用できますが、リソース構成ファイルを使用することをお勧めします。 リソース構成ファイルで -q スイッチを使用すると、品目ベースの分割を実装し、LN と言語固有のリソース ファイルでバイナリ リソース構成を行う属性を提供できます。 この分割は、-j スイッチと -k スイッチを使用することはできません。 注: リソースとバージョン情報を異なるリソース構成ファイルに格納すると、RC コンパイラの分割プロセスが正しく機能しません。 この場合、RC コンパイラはバージョン情報を分割しません。 そのため、言語固有のリソース ファイルのリンク中にリンカー エラーが発生します。これは、ファイルにバージョン リソースがないためです。 |
-g | 最終的な フォールバック言語 識別子を 16 進数で指定します。 |
-g1 | VERSION リソースがローカライズ可能な唯一のコンテンツである場合でも、MUI .res ファイルを作成します。 既定では、VERSION がローカライズ可能な唯一のリソースである場合、RC コンパイラは .res ファイルを生成しません。 |
-g2 | チェックサムを計算するときに使用するカスタム バージョン番号を指定します。 |
mui_res_name | 言語固有のリソースのリソース ファイル。 |
rc_config_file_name | リソース構成ファイル。 |
langid | 言語識別子。 |
バージョン | カスタム バージョン番号 ("6.2.0.0" などの形式)。 |
RC コンパイラを使用して MUI リソースを構築する例
MUI リソースを使用した RC コンパイラ操作を示すために、次のコマンド ラインでリソース ファイル Myfile.rc を調べてみましょう。
rc -fm myfile_res.res -q myfile.rcconfig myfile.rc
このコマンド ラインにより、RC コンパイラによって次の処理が実行されます。
- .rc ファイルの名前に基づいて、言語固有のリソース ファイル Myfile_res.res と、既定で Myfile.res に設定される言語に依存しないリソース ファイルを作成します。
- 2 (項目 5 6 7 8 9 10 11 12)、4、5、6、9、11、16、23、240、1024 MY_TYPEリソースの種類を、.rc ファイル内にある場合は言語固有の .res ファイルに追加します。
- リソースの種類 16 を、リソース ファイルで説明されている他のリソースの種類と共に、言語に依存しない .res ファイルと言語固有の .res ファイルに追加します。 この例では、リソースの種類 16 が 2 か所に追加されていることに注意してください。
- "UltimateFallbackLanguage" 属性値を選択して、優先順位が最も高いものから最も低い順に並べ替えられた次の条件に基づいて LN ファイルリソース構成データに挿入します。
- リソース構成ファイルの "UltimateFallbackLanguage" 属性 (入力として渡される場合)。
- RC コンパイラ言語の順序に基づいてリソース構成データに挿入する言語属性値 (言語に依存しない言語固有のリソース ファイル言語)。 考慮事項には、.rc ファイル内の言語、-gl スイッチの言語値、英語 (米国) の識別子0x0409などがあります。
備考
neutralResources 要素に ICON(3)、DIALOG(5)、STRING(6)、または VERSION(16) リソースの種類を含める場合は、リソース構成ファイルの localizedResources 要素でそのエントリを複製する必要があります。
関連トピック