MFC アプリケーションのローカライズされたリソース Dll を作成するには、方法

文書翻訳 文書翻訳
文書番号: 198846
すべて展開する | すべて折りたたむ

概要

リソース Dll はリソースの使用を効果的な方法です。言語。アプリケーションがローカライズされている、1 つの DLL を指定できます。リソースのセットアップ プログラムを使用します。別の言語に変更するには、正しい DLL を使用するだけで済みます。

以下の情報は、ローカライズされたリソース DLL を作成する方法について説明しますVisual C 5.0。

詳細

この資料では、簡単で一般的な方法を説明します。アプリケーションおよびリソース Dll をサポートする機能を生成します。複数の言語。このメソッドを使用して、すべてのリソースを RC ファイルの 1 つで、かなり容易にあります。実装されているリソースを参照してください。

  1. (既定の MFC AppWizard アプリケーションを作成します。 MyApp これで例) 指定 英語 (米国) リソースの言語をします。MFC ライブラリを使用します。 共有 DLL として.
  2. 既定の MFC AppWizard DLL として、最上位のプロジェクト (の挿入します。ResourceDll この例で)、および選択 MFC の拡張 DLL(MFC の共有 DLL を使用して) DLL の種類に対応します。.Lib ファイル、DLL を作成していなかったため、トップレベルのプロジェクトのリンカーの問題を回避します。その後の実行可能ファイルをビルドします。
  3. 削除し、RC ファイルを ResourceDll.rc2、Resource.h ファイルを削除します。ファイルとは RES ディレクトリを ResourceDll プロジェクトから。
  4. から、 プロジェクト メニューの選択、 プロジェクトに追加します。 ポップアップ メニューと選択 ファイル.MyApp.RC ファイルを ResourceDll プロジェクトに挿入します。
  5. 追加言語ごとその MyApp リソースのローカライズがされます。

    1. から、 ビルド メニューをクリックして 構成 新規追加リリースとデバッグ構成。たとえば、追加します。 フランス語のリリース構成から設定をコピーします。 ResourceDll - Win32リリース 追加します。 フランス語をデバッグします。 構成およびコピー、設定 ResourceDll の Win32 デバッグ.
    2. で、 プロジェクトの設定 ダイアログ ボックスで、選択 複数の構成、では、 設定 コンボ ボックス。リリースとデバッグの両方を選択します。プロジェクト構成は、特定の言語では、 選択プロジェクトの構成を変更するのには ダイアログ ボックスです。で、 リソース タブAFX_RESOURCE_DLL と AFX_TARG_XXX は、プリプロセッサの定義を追加します。xxx は、言語の文字指定子。のフランス語は FRA など [フランス、DEU のドイツ語と英語の ENU (アメリカ合衆国)]。

      注: プリプロセッサの定義をコンマ区切りなしでいます。定義の間のスペース。
    3. で、 言語 コンボのリソースの言語を使用ボックスを選択します。

      注: それらを識別するために、Dll の名前を変更することができます。たとえば、"d"を追加することができます。ロケールに言語固有のファイル拡張子を使用して、デバッグ DLL、としてマークするルート名。注意してください、実行可能ファイルのデバッグ バージョンをリリースでは機能しませんリソース dll のバージョンです。

      これは、出力を変更することによって行うことができます、ターゲット、リンカー各 DLL のビルドに使用します。

      1. 選択、 リンク プロパティ ページで、 プロジェクトの設定ダイアログ ボックスです。
      2. で、 設定 コンボ ボックスで、強調表示、構成は、DLL の出力を変更します。ディレクトリです。
      3. いることを確認します。 カテゴリ 設定されています。 全般 指定し、出力ディレクトリ名エディット ボックス 出力ファイル名.
      などの dll のローカライズ済みリソースを含むフランス語を変更 Debug/ResourceDLL.dll するには フランス語のデバッグ/ResourceDLLd.FRA Win32 デバッグの設定と変更前日比 Release/ResourceDLL.dll するには フランス語のリリース/ResourceDLL.FRA Win32 リリース構成をします。

      これらの Dll を使用するのには、必要なコピーする必要があります。DLL は、MyApp.exe と同じディレクトリにまたは、Windows ディレクトリで、必要に応じて、ResourceDll.dll に名前を変更または ResourceDllD.dll です。たとえば。

      ResourceDll.FRA\windows\system\ResourceDll.dll をコピーします。

      ディレクトリを指定することもことができますは、リソース ファイルMyApp.res は各ローカライズされた DLL を生成します。

      1. 選択、 リソース プロパティ ページで、 プロジェクト設定 ダイアログ ボックスです。
      2. で、 設定 コンボ ボックスで、強調表示、リソースの出力を変更する対象の構成ディレクトリです。
      3. いることを確認します。 カテゴリ 設定されています。 全般 指定し、ディレクトリの場所のリソースを出力ファイルになりますエディット ボックスの生成 リソース ファイル名.
  6. から、 プロジェクト メニューの選択 設定 強調表示し、 ResourceDLL プロジェクトです。選択 すべての構成 から、 設定の コンボ ボックス。クリックして、 C および C++ タブに続く、 プリプロセッサカテゴリです。MyApp プロジェクトのパスを追加、 その他インクルード ディレクトリ フィールドです。
  7. から、 プロジェクト メニューの選択 設定 強調表示し、 MyAppプロジェクトです。選択 すべての構成 から、 設定コンボ ボックス。クリックして、 リソース タブ、し、 プリプロセッサ定義 フィールドで、追加します。 AFX_RESOURCE_DLL.この定義を削除します。すべてのリソース MyApp.exe から。
  8. ResourceView] ワークスペースでフォルダーを開くし、キーの使用 ctrl キーを押し押すと、すべてのリソースで MyApp プロジェクトを選択します。たとえば、選択はアクセラレータでは、IDR_MAINFRAME を含める必要があり、IDD_ABOUTBOX ダイアログの。

    ResourceDLL bp のでは 挿入 メニュークリックしてください。 リソースのコピーは、適切な言語では、とを押しますに言語を設定します。 [OK].リソースの完全なセットを今すぐが必要別の言語をします。ただし、リソースを変換されなければなりません。

    (ローカライズされたリソースを作成する対象の言語でない場合言語の一覧別の言語を選択し、手動で編集する、リソース ファイルのテキストです。必要な変更を行った後、「未知の言語」というリソースの横にかっこされを表示言語とサブ言語識別子です。)

    注: リソース ファイルに既存のリソースをコピーすることもできます。この時点では。たとえば、別の MFC AppWizard を作成します。フランス語の言語リソースを使用するアプリケーション プロジェクト同じ選択内容を使用して、初期の MyApp を作成可能プロジェクトです。このアプリケーションを作成した後は、そのワークスペースを閉じるMyApp プロジェクト ワークスペースを開くし、選択 ResourceView.次に、、 ファイル メニューをクリックして ファイルを開く、フランス語のアプリケーションの RC ファイルを開きます。ここでドラッグ アンド ドロップ、フランスからのリソースの操作アプリケーション MyApp アプリケーションにします。これらのリソースします。フランス語ではすでに、翻訳する必要はありません。
  9. アプリケーションの CWinApp 派生 HINSTANCE メンバー変数を追加します。クラスです。これは、DLL のインスタンス ハンドルを保持します。たとえば。
       HINSTANCE m_hInstResDLL;
    						


    この作品は、CWinApp::InitInstance 定義内の追加の次の関数の先頭の 3 行。

    #ifdef _DEBUG
       // Load the debug version of the localized resources.
       m_hInstResDLL = LoadLibrary("ResourceDlld.dll");
    #else
       // Load the release version of the localized resources.
       m_hInstResDLL = LoadLibrary("ResourceDll.dll");
    #endif
       ASSERT( m_hInstResDLL != NULL );
    						


    注: これで AfxSetResourceHandle() を呼び出す必要はありません。ポイントします。
  10. このクラスを使用して、CMyApp::ExitInstance() メンバー関数を追加します。ウィザードします。アプリケーションが終了する前にライブラリを解放するコードを追加します。この関数は次のとおり変更します。

    int CMyApp::ExitInstance()
    {
       // In case you load multiple DLL's make sure to free them,
       // and avoid calling FreeLibrary with a NULL pointer.
    
       FreeLibrary(m_hInstResDLL);
       return CWinApp::ExitInstance();
    }
    						


  11. アプリケーションを構築する準備ができました。[バッチ ビルド] ダイアログ ボックスを使用すると、目的のターゲットを選択します。コピーする必要があります注意してください。適切な DLL を適切な場所と名前を変更します。

関連情報

テクニカル ノート 56 (テクニカル ノート 56) をローカライズされた MFC リソース (MFC40LOC。 の使用について説明します。DLL)。

57 (テクニカル ノート 57) デザインと手順の一部を説明するテクニカル ・ ノート、コンポーネントのローカライズには、アプリケーションまたは OLE が使用できます。コントロール、または DLL は、MFC を使用します。

テクニカル ノート 23 (テクニカル ノート 23) で提供される標準的なリソースの説明とMFC ライブラリに必要な。

Microsoft Foundation クラス含まれている Visual C のバージョン 2.2 およびそれ以前の詳細については、マイクロソフト サポート技術、次の資料を参照してください。
147149 「Mfc リソースをローカライズする方法」


(c) Microsoft Corporation 1999 年、すべての権利予約します。アイザック Varon はマイクロソフト社が出資。

プロパティ

文書番号: 198846 - 最終更新日: 2011年7月7日 - リビジョン: 3.0
キーワード:?
kbhowto kbintl kbintldev kbmt KB198846 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:198846
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com