次の方法で共有


リソース ユーティリティ

このトピックでは、MUI アプリケーションのビルドに使用される 2 つのユーティリティについて説明します。 MUIRCT は MUI 固有のツールですが、MUI は標準の Windows RC コンパイラ ユーティリティも使用します。 これらのユーティリティを使用する手順については、「 リソースのローカライズとアプリケーションのビルド」を参照してください。

MUIRCT ユーティリティ

MUIRCT (Muirct.exe) は、標準の実行可能ファイルを LN ファイルと言語固有の (つまりローカライズ可能な) リソース ファイルに分割するためのコマンド ライン ユーティリティです。 結果の各ファイルには、ファイル関連付けのリソース構成データが含まれています。 MUIRCT は Windows Vista のMicrosoft Windows SDKに含まれています。

注意

Windows Vista 以降では、Win32 リソース ローダーが更新され、言語固有のファイルと LN ファイルからリソースが読み込まれます。

 

MUIRCT の使用状況

  1. rc_configファイルに基づいてバイナリをバイナリファイルとmuiファイルメイン分割します。

    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. checksum_fileからチェックサムを抽出し、output_fileに挿入します。

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

  3. checksum_fileに基づいてチェックサムを計算し、output_fileに挿入します。

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

  4. 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 を指定します。 リソース ローダーが要求された .mui ファイルをスレッド優先 UI 言語から読み込めなければ、最後の試行として最終的なフォールバック言語が使用されます。 LangID 値は、10 進数または 16 進数の形式で指定できます。 たとえば、英語 (米国) は、-g 0x409 または -g 1033 で指定できます。
-Q rc_config ファイル レイアウトに従って、source_fileを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 は言語固有のリソース ファイルを作成します。 ただし、次のいずれかの条件が存在する場合、リソース ファイルは作成されません。
  • 元のバイナリ ファイルにローカライズ可能なリソースはありません。
  • 元のバイナリ ファイルで見つかった唯一のリソース言語は、ニュートラル言語です。
  • 元のバイナリ ファイルには、ニュートラル言語をカウントするのではなく、複数の言語のリソースがあります。 バイナリ ファイルに 2 つの言語のリソースが含まれており、そのうちの 1 つがニュートラル言語である場合、ユーティリティはファイルをモノリンガルと見なし、ローカライズ可能なリソースがある場合は言語固有のリソース ファイルを作成します。

 

MUIRCT 言語出力

MUIRCT は、最も高い優先順位から最も低い順に、次の順序に基づいて LN ファイル リソース構成データに挿入する "UltimateFallbackLanguage" 属性値を選択します。

  1. ソース リソース構成ファイルの "UltimateFallbackLanguage" 属性 (入力として渡される場合)。
  2. g スイッチで指定された言語。
  3. 入力ファイルの言語。

MUIRCT は、次の順序に基づいて 、.mui ファイル リソース構成データに挿入する "language" 属性値を選択します。

  1. ソース リソース構成ファイルの "language" 属性 (入力として渡される場合)。
  2. -x スイッチで指定された言語 (強制言語)。
  3. 入力ファイルの言語。

MUIRCT チェックサム処理

通常、オペレーティング システムは、リソース構成ファイルでチェックサムを指定しない限り、ファイル内の言語固有のリソースに対してチェックサムを計算します。 チェックサムが LN ファイルと関連付けられているすべての言語固有リソース ファイルと、LN と言語依存の一致のリソース構成の言語属性に対して同じである限り、リソース ローダーはリソースを正常に読み込むことができます。

MUIRCT では、リソース構成データに適切なチェックサムを配置するためのいくつかの方法がサポートされています。

  1. コードとリソースの両方を含む各言語の実行可能ファイルをビルドします。 その後、MUIRCT を使用して、これらの各ファイルを LN ファイルと言語固有のリソース ファイルに分割します。 MUIRCT は、1 回ずつ複数回実行され、言語ごとにリソース ファイルが生成されます。 ビルドは、次の方法で実行できます。
    1. -q スイッチを使用して、リソース構成ファイルにチェックサム値を指定します。 MUIRCT は、生成されたすべての LN ファイルと言語固有のリソース ファイルにこの値を配置します。 このトピックで後述するように、この値を選択するための戦略を採用する必要があります。
    2. -c スイッチ (および必要に応じて -b スイッチ) を使用して、MUIRCT がチェックサムを抽出するリソースを持つ 1 つの言語を選択します。
    3. -z スイッチを使用して、MUIRCT が常にチェックサムを抽出するリソースを持つ 1 つの言語を選択します。 他の方法を使用してファイルがビルドされた後に、このチェックサムを適用します。
  2. 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 または -? ヘルプ画面を表示します。
-Fm 指定したリソース ファイルを言語固有のリソースに使用します。 通常、リソース コンパイラは言語固有のリソース ファイルを作成します。 ただし、次のいずれかの条件が存在する場合、ファイルは作成されません。
  • .rc ファイルにローカライズ可能なリソースはありません。
  • .rc ファイルで見つかる唯一のリソース言語は、ニュートラル言語です。
  • .rc ファイルには、ニュートラル言語をカウントするのではなく、複数の言語のリソースがあります。 .rc ファイルに 2 つの言語のリソースが含まれており、そのうちの 1 つがニュートラル言語である場合、コンパイラはファイルをモノリンガルと見なします。 ローカライズ可能なリソースがある場合、コンパイラは言語固有のリソース ファイルを作成します。
-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 言語識別子。
version "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 要素でそのエントリを複製する必要があります。

多言語ユーザー インターフェイス リファレンス

MUI リソース管理

リソースのローカライズとアプリケーションの構築