Учебный Проект. Релиз 13: различия между версиями
м |
м |
||
Строка 18: | Строка 18: | ||
*'''Функциональное повторение''' | *'''Функциональное повторение''' | ||
Функционально Release 13 ничем не отличается от Release 12 (и 11). Исключение составляют: | Функционально Release 13 ничем не отличается от Release 12 (и 11). Исключение составляют: | ||
*'''Обработка исключений, связанных с DLL''' | |||
реагирование на возможные нарушения в составе приложения - либо отсутствие DLL, либо нарушение в DLL соглашений взаимодействия c главным приложением. | реагирование на возможные нарушения в составе приложения - либо отсутствие DLL, либо нарушение в DLL соглашений взаимодействия c главным приложением. | ||
*'''Новая модель игрока''' | |||
В Release 13 к использовавшимся ранее моделям добавлена новая модель игрока - Computer3, помещенная в DLL. | В Release 13 к использовавшимся ранее моделям добавлена новая модель игрока - Computer3, помещенная в DLL. | ||
Версия 10:29, 14 июля 2010
Автор: Виктор Юхтенко
Очередная итерация Учебного проекта, функциональной идеей которого является простая игра.
Цель
Демонстрация различных способов взаимодействия главного приложения с частями проекта, помещенными в DLL (Dynamically Linked Library - динамически связываемые библиотеки). Попутно демонстрируется генерация и обработка исключений.
Особенности
- Набор проектов
- Релиз 13 состоит из набора строго взаимосвязанных проектов - проекта главного приложения и трех DLL, для каждой из которых предусмотрен самостоятельный проект.
- Набор проектов содержит:
- Проект ObjectWin - проект главного исполняемого приложения.
- Проект ModelsDLL (генерирует DLL), в который помещены модели компьютерных стратегий игры Computer0, Computer1, Computer2.
- Проект Computer3DLL (генерирует DLL), в который помещена модель стратегии игры Computer3 (в некокоммерческой версии проекта нет, поставляется только сама DLL).
- Проект HumanInterfaceDLL (генерирует DLL), в который помещены классы, отноящиеся к HumanInterface (в некокоммерческой версии проекта нет, поставляется только сама DLL). Эта DLL вызывается с помощью библиотеки, которая связывается с главным приложением в процессе построения приложения.
- Функциональное повторение
Функционально Release 13 ничем не отличается от Release 12 (и 11). Исключение составляют:
- Обработка исключений, связанных с DLL
реагирование на возможные нарушения в составе приложения - либо отсутствие DLL, либо нарушение в DLL соглашений взаимодействия c главным приложением.
- Новая модель игрока
В Release 13 к использовавшимся ранее моделям добавлена новая модель игрока - Computer3, помещенная в DLL.
Эта модель не лучшая, но одна из возможных. Ее код не раскрывается не потому, что она содержит кокое-то Know-How.
Такое представление оставляет возможность во-первых показать соревнование двух разных моделей на поле достаточно большого размера, а во-вторых - устраивать в будущем как попарные, так и групповые состязания моделей, написанных разными людьми.
Загрузка и установка
Для установки и запуска проектов семейства Релиз 13 следует:
- Сгрузить архивы
- PdcSpbSDK_13_Classes.zip
- PdcSpbSDK_72_PE_Examples_Polyline13_Programs.zip
используя страницу форума PDC (VIP-Средства и Примеры)
- Разархивировать эти архивы в одной и той же директории. Следует иметь в виду, что каждый из архивов создает структуру папок (иногда с повторениями) с корнем PdcSpbSDK. В результате структура всего набора Релиз 13 должна выглядеть так (вариант коммерческой версии):
Исполнение
Откройте, постройте и запустите проекты, используя VIP 7.2:
- Programs/ModelsDLL/ModelsDLL.prj Предупреждение в процессе компиляции указывает на специально сделанную ошибочную декларацию. Это сделано для демонстрации реакции на ошибку в DLL
- Programs/Computer3DLL/Computer3DLL.prj (только в коммерческой версии)
- Programs/HumanInterfaceDLL/HumanInterfaceDLL.prj (только в коммерческой версии)
- Programs/ObjectWin/Polyline13_ObjWindows.prj
Для построения проектов Релиз 13 переменная SpbSolutions среды программирования IDE должна быть определена как маршрут к директории PdcSpbSDK. Язык приложения, если поддерживается иной, кроме английского, определяется помещением в командной строке идентификатора языка:
- ru - русский
- en - английский