Создание локализованных библиотек ресурсов для приложений MFC

Переводы статьи Переводы статьи
Код статьи: 198846 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

Аннотация

DLL ресурсов являются эффективным средством для использования ресурсов в differentlanguages. Приложение может использовать файл DLL с localizedresources через свои программы установки. Изменение на другой язык — это вопрос asimple с помощью соответствующие библиотеки DLL.

Приведенные ниже сведения способы сделать локализованного ресурса DLLwith Visual C++ версии 5.0.

Дополнительная информация

Данная статья содержит простой, общий метод forgenerating может supportingmultiple языков DLL приложения и ресурсов. С помощью этого метода, имеется все ресурсы в одном RC-файле, что делает его довольно легко tosee какие ресурсы были реализованы.

  1. Создать (называемые мастере приложений MFC приложения по умолчанию Приложение в этом примере) и указать Английском (США) для языка ресурсы. Использование библиотеки MFC как общую библиотеку DLL.
  2. Вставить как (проекта верхнего уровня по умолчанию в мастере приложений MFC DLLResourceDll в этом примере) и выберите пункт Библиотеки DLL расширения MFC (с использованием общей библиотеки DLL MFC) для типа DLL. Так как не LIB-файл создается для библиотеки DLL, верхнего уровня проекта позволяет избежать проблем компоновщика в последующие построения исполняемого файла.
  3. Удалить и RC-файле, файл Resource.h, ResourceDll.rc2 файл и каталог RES из проекта ResourceDll.
  4. Из Проект Выберите пункт Добавить проект во всплывающем меню и выберите Файлы. Вставьте файл MyApp.RC в проекте ResourceDll.
  5. Для каждого дополнительного языка, приложение будет локализованные ресурсы для:

    1. Из Построение меню, нажмите кнопку Конфигурации и добавления новой конфигурации отладки и выпуска. Например, добавление Французская версия конфигурации и скопируйте его параметры ResourceDll - выпуск Win32 и добавить Отладка французский конфигурации и скопируйте его параметры ResourceDll - отладки Win32.
    2. В Параметры проекта диалоговое окно выберите Несколько конфигураций, в Параметры для поле со списком. Выбор выпуска и отладки конфигурации проекта для конкретного языка Выберите конфигурацию проекта для изменения диалоговое окно. В Ресурсы вкладке, добавление определения препроцессора, AFX_RESOURCE_DLL и AFX_TARG_XXX, где XXX — буква спецификатор для языка. Например FRA для французского языка [Франция, Германия, для немецкого языка и ENU для английского языка (США)].

      ПРИМЕЧАНИЕ: Определения препроцессора, запятыми, без пробелов между определениями.
    3. В Язык поле со списком, выберите язык, используемый в ресурс.

      ПРИМЕЧАНИЕ: Может потребоваться имя библиотеки DLL, для их идентификации. Например может потребоваться добавить «d» имя корня, пометить его как отладка DLL и использование языковых расширений следует отметить языковой стандарт. Имейте в виду, что отладочная версия исполняемого файла, не будет работать с рабочей версией библиотеки DLL ресурсов.

      Это можно сделать путем изменения конечного вывода, компоновщик использует для каждого построения библиотеки DLL.

      1. Выберите Ссылка Страница свойств из Параметры проекта диалоговое окно.
      2. В в Параметры для поле со списком выберите конфигурацию, для которой требуется изменить выходной каталог библиотеки DLL.
      3. Убедитесь, что Категория имеет значение Общие и укажите имя выходного каталога в поле редактирования Имя выходного файла.
      Например для библиотеки dll, содержащей локализованные ресурсы для французского языка, изменение Debug/ResourceDLL.dll для Французский Debug / ResourceDLLd.FRA для отладки Win32 изменения конфигурации и изменить Release/ResourceDLL.dll для Французский выпуска / ResourceDLL.FRA для конфигурации Release для 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. Из Проект Выберите пункт Параметры и выделение Приложение проект. Выберите Все конфигурации из Параметры для поле со списком. Нажмите кнопку Ресурсы на вкладке и в Определения препроцессора поля, добавить AFX_RESOURCE_DLL. Это определение удаляет все ресурсы из MyApp.exe.
  8. В рабочей области ResourceView открывать папки и с нажатой клавишу CTRL, выберите все ресурсы в проекте MyApp. Например сделанного должно включать IDR_MAINFRAME IDD_ABOUTBOX и сочетания клавиш для диалогового окна.

    Для каждой из конфигураций ResourceDLL на Вставка меню, нажмите кнопку Копирование ресурсов, установить язык для соответствующего языка и нажмите клавишу ОК. Теперь вы получите полный набор ресурсов для другой язык. Ресурсы, тем не менее, должны быть переведены.

    (Если язык, для которого требуется создать локализованные ресурсы не входит в список языков, выберите другой язык и вручную изменить текст из файла ресурсов. После того, как вы были внесены соответствующие изменения в скобках рядом с ресурса будет сказать "Неизвестный язык" и отобразить идентификаторы языка и его варианта.)

    ПРИМЕЧАНИЕ: Также можно скопировать уже имеющихся ресурсов в файле ресурсов на данный момент. Например можно создайте отдельный проект мастере приложений MFC приложения, использующего ресурсы французского языка с помощью того же, используется для создания начального проекта MyApp. После создания этого приложения, закройте его рабочую область и открыть рабочую область проекта MyApp и выберите ResourceView. Затем на Файл меню, нажмите кнопку Открытьи открыть RC-файле французский приложения. Теперь перетащите все ресурсы из Франции приложения в приложение MyApp. Эти ресурсы уже были на французском языке и преобразование не требуется.
  9. Добавьте переменную-член HINSTANCE класс производным от CWinApp приложения. Для хранения дескриптора экземпляра библиотеки DLL. Например:
       HINSTANCE m_hInstResDLL;
    						


    В верхней части функции CWinApp::InitInstance определение проекта добавьте следующие три строки:

    #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 (TN056) описывает использование локализованных ресурсов MFC (MFC40LOC.(DLL).

Примечание Технический 57 (TN057) описаны некоторые макеты и процедуры youcan, используемый для локализации компонента, будь то приложения или OLEcontrol или библиотеку DLL, которая использует MFC.

Технический Примечание 23 (TN023) описывает стандартные ресурсы с andneeded библиотекой MFC.

Дополнительные сведения о классов Microsoft Foundation входящей в Visual C++ версии 2.2 и более ранних версий обратитесь к следующей статье Microsoft Knowledge Base:
147149 «Как локализации ресурсов с классами Foundation»


(c) Корпорация Майкрософт, 1999, все права защищены. Вклад Isaac Varon, корпорация Майкрософт.

Свойства

Код статьи: 198846 - Последний отзыв: 1 ноября 2013 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual C++ 5.0 Professional Edition
  • Microsoft Visual Basic 5.0 Enterprise Edition
Ключевые слова: 
kbhowto kbintl kbintldev kbmt KB198846 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.
Эта статья на английском языке: 198846
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

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