четверг, 5 апреля 2012 г.

Создание DLL библиотеки ресурсов в Visual Studio Express

© Никита Культин, 2012.
05.04.2012

В Microsoft Visual C++ 2010 Express добавить в проект ресурс нельзя. Тем не менее, создать dll файл, содержащий строки-ресурсы все-таки можно!

Чтобы в Microsoft Visual C++ 2010 Express создать динамическую библиотеку, содержащую строки-ресурсы надо:

·         Создать ПУСТОЙ проект Win32 dll библиотеки

·         В окне Свойства проекта открыть вкладку Компоновщик/Дополнительно и присвоить параметру Без точки входа (No Entry Point)  значение Yes (/NOENTRY);

·         Создать текстовый файл содержащий описание таблицы строк (пример приведен ниже).

·         Изменить расширение созданного файла на res (теперь текстовый файл является файлом ресурсов)

·         Добавить в проект созданный файл ресурсов (открыть файл ресурсов в Visual Studio, например, для внесения изменений, можно, сделав щелчок правой кнопкой мыши и выбрав в качестве программы Редактор исходного текста с кодировкой)

·         Задать программу обработки файла ресурсов – на вкладке Свойства файла задать Тип элемента - Компилятор ресурсов.

·         Выполнить построение проекта

Пример содержимого res файла ()
#define AppTitle        100
#define AppTitleString  200

STRINGTABLE
{

    AppTitle,       "Calendar+"
    AppTitleString, "Calendar+"

}

Локализация названия приложения Windows Phone


©  Никита Культин, 2012.

05.04.2012

Название приложения, отображаемое в списке установленных программ рядом со значком программы, задается в файле WMAppManifest.xml и определяется значением параметра Title узла <App>. Чтобы обеспечить соответствие названия приложения текущей языковой настройке устройства (локализовать название), в качестве значения параметра Title надо указать динамическую библиотеку, в которой находится строка-ресурс, используемая в качестве названия приложения, и идентификатор строки-ресурса. Например: Title ="@AppRes.dll, -200"

Здесь AppRes.dll это – ddl файл, содержащий строки-ресурсы для так называемой Neutral локализации, 200 – идентификатор строки-ресурса.

Название приложения, отображаемое на плитке главного окна, задает значение ключа <Title> в файле WMAppManifest.xml

<Title>=@AppRes.dll, -100</Title>

Чтобы обеспечить локализацию названия приложения, для каждой культуры (языка), которую ложно поддерживать приложение, надо создать dll библиотеку. Код культуры указывается в имени dll файла.

Замечание. Правила записи имен библиотек см. http://msdn.microsoft.com/en-us/library/ff967550%28v=VS.92%29.aspx

Культура
Язык
Имя файла
Neutral
Обычно English
AppRes.dll
us-US
English
AppRes.dll.0409.mui
ru-RU
Russian
AppRes.dll.0419.mui
it-IT
Italian
AppRes.dll.0410.mui
de-DE
German
AppRes.dll.0407.mui
es-ES
Spanish
AppRes.dll.0c0a.mui
fr-FR
French
AppRes.dll.040c.mui


Динамическая библиотека (файл dll) создается в Microsoft Visual C++.

Чтобы создать dll файл надо:
·         Создать проект создания dll библиотеки;
·         В окне Свойства проекта открыть вкладку Компоновщик/Дополнительно и присвоить параметру Без точки входа (No Entry Point)  значение Yes (/NOENTRY);
·         Добавить в проект таблицу строк-ресурсов;
·         Выполнить компиляцию (построение) проекта.

Внимание! В Microsoft Visual C++ 2010 Express добавить в проект ресурс нельзя. Тем не менее, создать dll файл, содержащий строки-ресурсы все-таки можно!

Чтобы в Microsoft Visual C++ 2010 Express создать динамическую библиотеку, содержащую строки-ресурсы надо:

·         Создать проект создания dll библиотеки
·         В окне Свойства проекта открыть вкладку Компоновщик/Дополнительно и присвоить параметру Без точки входа (No Entry Point)  значение Yes (/NOENTRY);
·         Создать текстовый файл содержащий описание таблицы строк (пример приведен ниже).
·         Изменить расширение созданного файла на res (теперь текстовый файл является файлом ресурсов)
·         Добавить в проект созданный файл ресурсов
Замечание:
открыть файл ресурсов в Visual Studio, например, для внесения изменений, можно, сделав щелчок правой кнопкой мыши и выбрав в качестве программы Редактор исходного текста с кодировкой.
·         Задать программу обработки файла ресурсов – на вкладке Свойства файла задать Тип элемента - Компилятор ресурсов
·         Задать имя dll файла: раскрыть окно Свойства проекта, на вкладке Свойства конфигурации/Общие задать значения полей Конечное имя и Конечное расширение. Например: AppResLib и .ddl.0419.mui, где 0419 - идентификатор культуры русского языка.
·         Выполнить построение проекта

Пример фала ресурсов (AppRes.res)

#define AppTitle        100
#define AppTitleString  200

STRINGTABLE
{
    AppTitle,       "Calendar+"
    AppTitleString, "Calendar+"
}

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

Внимание! Чтобы библиотека была включена в XAP файл, свойству Build Action файла dll (mui) файла надо присвоить значение Content.

Внимание!  В файле проекта приложения (csproj) должна быть информация о поддерживаемых приложением локализациях (узел SupportedCultures).