Jak vytvořit knihovny DLL prostředků lokalizované aplikace knihovny MFC

Prohlášení o odmítnutí odpovědnosti pro už nepodporovaný obsah KB

Tento článek byl napsán pro produkty, ke kterým již Microsoft nadále nenabízí podporu. Článek je tedy poskytován „tak, jak je“ a nebude už nadále aktualizován.

Souhrn

Knihovny DLL prostředků jsou účinným nástrojem pro používání zdrojů v různých jazycích. Aplikace můžete zadat jeden soubor DLL, která má lokalizované prostředky pomocí jejich instalační program. Změna na jiný jazyk je jednoduché pomocí správné knihovny DLL.


Níže uvedené informace popisuje, jak provést lokalizovaná knihovna DLL s Visual C++ 5.0.

Další informace

Tento článek popisuje jednoduché, hlavní způsob generování aplikace a prostředky, DLL podporovat více jazyků. Pomocí této metody máte všechny vaše prostředky v jednom souboru RC, což poměrně snadno zjistit, jaké prostředky byla implementována.


  1. Vytvoření aplikace MFC AppWizard výchozí (nazývané Mojeapl v tomto příkladu) a zadejte Anglické jazykové prostředky. Použití knihovny MFC jako sdílené knihovny DLL.
  2. Vložit výchozí MFC AppWizard DLL jako nejvyšší úrovně projektu (v tomto příkladuResourceDll ) a vyberte rozšiřující knihovna DLL MFC (pomocí sdílené knihovny DLL MFC) pro typ knihovny DLL. Vzhledem k tomu, že knihovny DLL je vytvořen žádný soubor LIB, nejvyšší úrovně projektu je zabráněno problémům propojovacího programu v následná sestavení spustitelného souboru.
  3. Odebrat a odstranit z projektu ResourceDll RC souboru, soubor Resource.h, ResourceDll.rc2 soubor a adresář RES.
  4. Z nabídky projekt vyberte v rozbalovací nabídce Přidat projekt a zvolte soubory. Vložte soubor MyApp.RC do projektu ResourceDll.
  5. Pro každý další jazyk, který bude mít Mojeapl lokalizované prostředky pro:


    1. V nabídce sestavení klepněte na tlačítko Konfigurace a přidání nové konfigurace ladění a vydání. Například přidání konfigurace Vydání francouzské a Kopírovat nastavení z ResourceDll - Win32 Release a přidání konfigurace Ladění francouzské a Kopírovat nastavení z ResourceDll - ladění Win32.
    2. V dialogovém okně Nastavení projektu zvolte seznamem nastavení pro Více konfigurací. V dialogovém okně Vyberte konfigurace projektu, chcete-li změnit výběr verze a konfigurace ladění projektu pro určitý jazyk. Na kartě prostředky přidat preprocesoru AFX_RESOURCE_DLL a AFX_TARG_XXX, kde XXX je specifikátor písmena pro jazyk. Například FRA francouzské [Francie, DEU pro němčinu a ENU pro angličtinu (USA)].

      POZNÁMKA: Definice preprocesoru jsou čárkami bez mezer mezi definicemi.
    3. Jazyk -seznamem vyberte jazyk používaný v prostředku.



      POZNÁMKA: Chcete název vaší knihovny DLL usnadnit jejich identifikaci. Například můžete přidat "d" k názvu kořenové označit jako ladění knihovny DLL a Všimněte si národní prostředí pomocí přípony specifické pro jazyk. Uvědomte si, že ladicí verze spustitelného souboru, který nebude fungovat s verzi knihovny DLL prostředků.


      To lze provést změnou cíl výstupu, který používá propojovací program pro každé sestavení knihovny DLL.



      1. Vyberte na stránce vlastností odkazu v dialogovém okně nastavení projektu .
      2. V v seznamu Nastavení pro pole se seznamem-, zvýrazněte položku konfigurace, chcete-li změnit výstupní adresář knihovny DLL.
      3. Ujistěte se, že kategorie je nastavena na hodnotu Obecné a určete název výstupního adresáře do textového pole ve skupinovém rámečku Název výstupního souboru.
      Například pro knihovny dll obsahující lokalizované prostředky pro francouzské, změnit Debug/ResourceDLL.dll k Francouzština Debug / ResourceDLLd.FRA pro ladění Win32 změnit konfiguraci a změna Release/ResourceDLL.dll k Francouzské vydání / ResourceDLL.FRA pro konfiguraci verze Win32.



      Používat tyto knihovny DLL, musíte zkopírovat požadované knihovny DLL do stejného adresáře, který je MyApp.exe v nebo příslušné adresáře systému Windows a přejmenovat ResourceDll.dll nebo ResourceDllD.dll. Například:


      Kopírovat ResourceDll.FRA\windows\system\ResourceDll.dll

      Můžete také určit adresář, kde bude vygenerován soubor prostředků MyApp.res, pro jednotlivé lokalizované knihovny DLL.


      1. Vyberte stránku vlastností zdroje v dialogovém okně nastavení projektu .
      2. V v seznamu Nastavení pro pole se seznamem-, zvýrazněte položku konfigurace, pro které chcete změnit zdroj výstupní adresář.
      3. Ujistěte se, že kategorie je nastavena na hodnotu Obecné a zadejte adresář, kde bude vygenerována výstupní soubor prostředků do textového pole ve skupinovém rámečku název souboru prostředku.
  6. Z nabídky projekt vyberte Nastavení a vyberte
    ResourceDLL projektu. V rozevíracím seznamu Nastavení pro pole se seznamem zvolte Všechny konfigurace . Klepněte na kartu C/C++ a jeho kategorii preprocesoru . V poli Další zahrnuté adresáře přidáte cestu k projektu Mojeapl.
  7. Z nabídky projekt vyberte Nastavení a zvýraznit Mojeapl projekt. V rozevíracím seznamu Nastavení pro pole se seznamem zvolte Všechny konfigurace . Klepněte na kartu prostředky a přidejte pole definiční soubory preprocesoru AFX_RESOURCE_DLL. Tato definice odstraní všechny prostředky z MyApp.exe.
  8. V pracovním prostoru ResourceView Otevřít každou složku a stisknutí klávesy CTRL vyberte všechny zdroje v projektu aplikace. Výběr by měl například IDR_MAINFRAME akcelerátor a IDD_ABOUTBOX pro dialogové okno.



    Pro každou z konfigurací ResourceDLL, v nabídce Vložit klepněte na příkaz Kopírovat zdrojnastavit jazyk na příslušný jazyk a klepněte na tlačítko OK. Nyní byste měli mít úplnou sadu prostředků pro jiného jazyka. Prostředky, však musí být převedeny.



    (Pokud není jazyk, pro který chcete vytvořit lokalizované zdroje v seznamu jazyků, vyberte jiný jazyk a ručně upravit text souboru prostředků. Poté, co jste provedli příslušné změny v závorkách vedle prostředků bude vyslovte příkaz "neznámý jazyk" a zobrazit identifikátory jazyk a dílčí jazyk.)



    POZNÁMKA: V tomto okamžiku můžete také zkopírovat dříve existující prostředky do souboru prostředků. Například vytvořte samostatné MFC AppWizard aplikace projekt, který používá francouzské jazykové prostředky pomocí stejné volby použité k vytvoření původního projektu aplikace. Po vytvoření této aplikace, zavřete jeho pracovního prostoru a otevřete pracovní prostor aplikace project a vyberte ResourceView. Potom v nabídce soubor klepněte na příkaz Otevříta otevřete soubor RC francouzské aplikace. Nyní přetažením všechny prostředky z Francouzské aplikace v aplikaci MyApp. Tyto prostředky jsou již ve francouzštině a překlad není nutné.
  9. Přidáte proměnnou členské HINSTANCE aplikace CWinApp odvozené třídy. To bude obsahovat popisovač instance knihovny DLL. Například:

       HINSTANCE m_hInstResDLL;


    Do definice CWinApp::InitInstance projektu přidejte následující tři řádky v horní části funkce:


    #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 );



    POZNÁMKA: Není nutné volat AfxSetResourceHandle() v tomto okamžiku.
  10. Přidáte CMyApp::ExitInstance() členské funkce pomocí Průvodce třídou. Přidejte kód uvolnění knihovny před ukončí aplikaci. Funkce změňte následujícím způsobem:



    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. Aplikace je připravena k sestavení. V dialogovém okně dávkové sestavení, vyberte požadované cíle. Mějte na paměti, že je nutné zkopírovat do příslušné knihovny DLL vhodného umístění a přejmenujte jej.

Odkazy

Technická poznámka 56 (TN056) popisuje použití lokalizované prostředky MFC (MFC40LOC. (DLL).

Technická poznámka: 57 (TN057) jsou uvedeny některé návrhy a postupy, které slouží k lokalizaci komponenty, je třeba řídit aplikace nebo OLE, nebo knihovna DLL, která používá knihovnu MFC.

Technická poznámka 23 (TN023) popisuje standardní prostředky vybaveny a potřebné knihovny MFC.


Další informace o Microsoft Foundation Classes součástí Visual C++ verze 2.2 a starší naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:
147149 "Jak lokalizovat prostředky s Foundation Classes"


(c) 1999 Microsoft Corporation, všechna práva vyhrazena. Příspěvky podle Isaac Varon, Microsoft Corporation.

Vlastnosti

ID článku: 198846 - Poslední kontrola: 12. 1. 2017 - Revize: 1

Váš názor