Руководство разработчика

Проект программы

Проект программы объединяет настройки компиляции и список файлов проекта, что позволяет выполнять компиляцию и публикацию.

Файл проекта программы имеет расширение ibp. Это текстовый файл, но редактировать его вручную не следует. В среде разработки для редактирования списка файлов проекта предназначено окно проекта, а для редактирования настроек - диалог параметров проекта.

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

Настройки проекта

Для компиляции программы требуется ряд настроек, определяющих то, как обрабатывать исходный текст и как генерировать исполнимый код. Часть настроек проекта задается в разрезе конфигурации.

В среде разработки настройки компиляции задаются в диалоге параметров проекта.

Ниже приводится список параметров, не зависящих от конфигурации:

Язык ключевых слов Определяет, на каком языке ключевые слова в исходных текстах проекта. В стандартной поставке поддерживаются языки: "rus" - русский, "eng" - английский. В настоящем руководстве вся информация и примеры даны для русского написания ключевых слов.

При создании нового проекта язык ключевых слов может быть задан в диалоге дополнительных параметров.

Для текущего проекта язык можно изменить на закладке "Оcновные" диалога параметров проекта. При этом с исходными текстами ничего не происходит, ключевые слова как там были записаны - так и остаются.
Основной файл Определяет имя основного файла программы. Обычно, основной файл имеет расширение ipp. С основного файла начинается компиляция проекта. Параметр может содержать путь относительно файла проекта (ibp) или общей папки исходных текстов, задаваемой на закладке "Папки" настроек среды разработки.

При создании нового проекта основной файл создается одноименным с файлом проекта. При желании изменить имя основного файла можно в диалоге дополнительных параметров.

В окне проекта на закладке "Файлы" имя основнго файла отображается жирным шрифтом. Сменить основной файл проекта можно на закладке "Оcновные" диалога параметров проекта и помощью команд меню среды разработки.
Файл исполнимого кода Определяет имя файла исполнимого кода программы. Файлы исполнимого кода имеют расширение ibx. Компилятор создает код исполнимого код как продукт своей работы. Параметр может содержать путь относительно папки вывода компилятора, задаваемой для разных конфигураций на закладке "Папки" настроек среды разработки. Само имя файла исполнимого кода не зависит от конфигурации, т.к. в противном случае невозможно было бы прозрачно переключать конфигурации в среде выполнения.

При создании нового проекта имя файла исполнимого кода задается таким же как у файла проекта. При желании, изменить имя файла исполнимого кода можно в диалоге дополнительных параметров.

Для существующего проекта изменить имя файла исполнимого кода можно на закладке "Вывод" диалога параметров проекта.
Файл отчета профайлера Задает имя файла для записи отчета профайлера. Файлы отчетов профайлера имеют расширение ibprof.

Использование профайлера влечет накопление статистики вызова функций во время выполнения, что связано с накладными расходами по скорости и потреблению памяти. По завершении выполнения программы отчет профайлера записывается в текстовый файл на диске. Файлы отчетов профайлера могут быть открыты в среде разработки в виде таблицы с возможностью сортировки по различным метрикам.

Этот параметр необязательный. Если имя файла не задано, то отчеты профайлера в файлы не сохраняются и их просмотр возможен только в соответствующем окне среды разработки.

Параметр может содержать путь относительно папки отчетов профайлера задаваемой на закладке "Папки" настроек среды разработки.

При создании нового проекта имя файла отчета профайлера задается таким же как у файла проекта с поддержкой подстановки имени конфигурации, даты и времени формирования отчета.

Для существующего проекта изменить имя файла отчета профайлера можно на закладке "Отладка" диалога параметров проекта.

В имени файла отчета профайлера поддерживаются следующие подстановки:
  • %DATE%
  • - дата формирования отчета в формате YYYY_MM_DD;
  • %TIME%
  • - время формирования отчета в формате HH_MM_SS;
  • %PTIME%
  • - точное (precise) время формирования отчета в формате HH_MM_SS_II, где II - сотые секунды;
  • %CONFIG%
  • - имя конфигурации (release или debug);
  • %N%
  • - счетчик автонумерации.
При использовании счетчика автонумерации предотвращается перезапись имеющихся на диске файлов. Счетчик увеличивается до тех пор, пока не будет найдено имя несуществующего файла.

Пример использования подстановок:
Отчеты\ПостроениеОтчета\%CONFIG%_%DATE%_%TIME%
Пример результата:
Отчеты\ПостроениеОтчета\release_2014_10_01_11_05_32.ibprof

Пример использования счетчика:
Отчеты\ПостроениеОтчета%N%
Пример результата (счетчик = 0, 1, 2 и т.д.):
Отчеты\ПостроениеОтчета2.ibprof
Название программы Определяет отображаемое пользователю название программы. Это строка произвольного вида, которая записывается в заголовок файла исполнимого кода. Некоторые модули могут использовать название программы для заголовков окон и т.п. В тексте программы получить название программы можно с помощью ключевого слова __ПРОГРАММА__ или функцией ТЕК_ЗАГОЛОВОК_КОДА из модуля RVMC. Для других программ название можно получить функцией СЧИТАТЬ_ЗАГОЛОВОК_КОДА из модуля RVMC.

При создании нового проекта название программы задается таким же как имя файла проекта. При желании, изменить название программы можно в диалоге дополнительных параметров.

Для существующего проекта изменить название программы можно на закладке "Основные" диалога параметров проекта.

Также имя программы может быть указано непосредственно в основном исходном файле программы (ipp) с помощью ключевого слова ПРОГРАММА. Нельзя одновременно указывать имя программы в настройках проекта и в исходном коде.
Файл манифеста Задает файл манифеста (см. ниже). Этот параметр необязательный. Параметр может содержать путь относительно файла проекта (ibp).

При создании нового проекта файл манифеста не задается. Указать файл манифеста можно на закладке "Оcновные" диалога параметров проекта.
Режим использования модулей Определяет один из трех режимов использования модулей:
  • используются все доступные модули;
  • используются модули, явно заданные в списке;
  • модули не используются.
Компилятор импортирует объявления типов, функций и т.д. из модулей в процессе своей работы. Отключение использования ненужных модулей может сократить время компиляции.

Исполнимый код программы не зависит от режима использования модулей, в него добавляются зависимости только от тех модулей, которые фактически используются в программе.

При создании нового проекта режим использования модулей может браться из шаблона проекта. Изменить режим можно на закладке "Модули" диалога параметров проекта.
Список модулей Список модулей учитывается при втором режиме использования модулей. Задать режим и список модулей из набора доступных можно на закладке "Модули" диалога параметров проекта.
Использование типов времени выполнения Разрешение на использование при компиляции типов времени выполнения. Компилятор импортирует объявления типов из источников, определяемых модулями. При этом может происходить обращение к базе данных и т.п. Запрет использования типов времени выполнения может сократить время компиляции для проектов, где такие типы не используются.

При создании нового проекта признак использования типов времени выполнения выключен. При желании, изменить это можно в диалоге дополнительных параметров.

Для существующего проекта задать признак использования типов времени выполнения можно на закладке "Модули" диалога параметров проекта.
Опции совместимости Набор опций совместимости для поддержки компилятором устаревших свойств языка И++.

При конвертации файла проекта из старого формата все опции совместимости включены. При создании нового проекта все опции совместимости выключены. Для существующего проекта опции совместимости задаются на закладке "Совместимость" диалога параметров проекта. В новых проектах рекомендуется включать отдельные опции совместимости только для устранения ошибок при компиляции старых библиотек.
Дополнительные команды Набор дополнительных команд, исполняемых:
  • до компиляции;
  • после компиляции.
Дополнительные команды исполняются модулями. Формат записи команды следующий:
<модуль>:<команда>
или, для команды с параметрами:
<модуль>:<команда>(<параметр 1>, <параметр 2>, ...)

Команды выполняют различную дополнительную работу, которую не умеет делать среда разработки. Например, передают созданный исполнимый код по сети на сервер. Описания конкретных команд см. здесь.

При создании нового проекта список дополнительных команд может браться из шаблона проекта. Редактирование списка команд выполняется на закладке "Вывод" диалога параметров проекта.

Манифест

С помощью манифеста разработчик программы И++ может поместить дополнительные данные в заголовок исполнимого кода (файла ibx). Файл манифеста должен быть текстовым. Компилятор читает файл манифеста и включает в заголовок исполнимого кода в виде строки.

Также манифест может быть указан непосредственно в основном исходном файле программы (ipp) с помощью ключевого слова МАНИФЕСТ. Нельзя одновременно указывать файл манифеста в настройках проекта и текст манифеста в исходном коде.

В общем случае, формат текстовых данных в файле манифеста может быть произвольным. На практике рекомендуется применять формат XML, для работы с которым можно использовать средства модуля XML. В частности, метод XML_КУРСОР.ОТКРЫТЬ_СТРОКУ позволяет обрабатывать XML-документ считанный из строки.

Данные, записанные в строку манифеста, могут обрабатываться как элементами среды выполнения, так и программами И++. В тексте программы получить собственную строку манифеста можно с помощью ключевого слова __МАНИФЕСТ__ или функцией ТЕК_ЗАГОЛОВОК_КОДА из модуля RVMC. Для других программ строку манифеста можно получить функцией СЧИТАТЬ_ЗАГОЛОВОК_КОДА из модуля RVMC.


См. также: