Четвертый borland с и его окружение p

Содержание

Четвертый borland с и его окружение p

Вы выбрали книгу «Четвертый Borland С++ и его окружение. Вахтеров М.». Вы можете совершенно бесплатно скачать эту книгу, но только для ознакомления и личного, не коммерческого использования. Ссылка на скачивание расположена ниже на странице.

Возможно, что у автора Вахтеров М. есть и другие книги в нашей электронной библиотеке. Если это так, то Вы можете их видеть в списке снизу данной страницы.

Для начала скачивания выберите сервер и нажмите ссылку «скачать»

Все книги запакованы архиватором RAR. Чем распаковать читайте тут. Внутри архива Вы найдёте файл(ы) книги, как открыть и просмотреть файл книги читайте здесь.

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

Исполняема часть

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

Описанию подпрограммы, объявленной в интерфейсной части модуля, в исполняемой части должен предшествовать заголовок, в котором можно опускать список формальных переменных (и тип результата для функции), так как они уже описаны в интерфейсной части. Но если заголовок подпрограммы приводится в полном виде, т.е. со списком формальных параметров и объявлением результата, он должен совпадать с заголовком, объявленным в интерфейсной части, например:

Procedure AddC (x, у : complex; var z : complex);

Локальные переменные и константы, а также все программные коды, порожденные при компиляции модуля, помещаются в общий сегмент памяти.

ТЕХНОЛОГИЯ BORLAND

Компания Borland (www.borland.com) в результате развития собственных разработок и приобретения ряда компаний предста­вила интегрированный комплекс инструментальных средств, реализующих управление полным жизненным циклом приложений (Application Life Cycle Management, ALM). В соответствии с тех­нологией Borland процесс создания ПО включает в себя пять ос­новных этапов:

· анализ и проектирование;

· тестирование и профилирование;

Выполнение всех этапов координируется процессом управле­ния конфигурацией и изменениями.

Определение требований реализуется с помощью системы уп­равления требованиями CaliberRM, которая стала частью семей­ства продуктов Borland в результате покупки компании Starbase. CaliberRM сохраняет требования в базе данных, документы с их описанием создаются с помощью встроенного механизма генера­ции документов MS Word на базе заданных шаблонов. Система обеспечивает экспорт данных в таблицы MS Access и импорт из MS Word. CaliberRM поддерживает различные методы визуализа­ции зависимостей между требованиями, с помощью которых пользователь может ограничить область анализа, необходимого в случае изменения того или иного требования. Имеется модуль, который использует данные требования для оценки трудозатрат, рисков и расходов, связанных с реализацией требований.

Средство анализа и проектирования Together ControlCenter разработано компанией TogetherSoft. В основе его применения лежит один из вариантов подхода «Быстрой разработки ПО» под названием Feature Driven Development (FDD)[29] [Палмер-02].

Together ControlCenter — интегрированная среда проектирова­ния и разработки, поддерживающая визуальное моделирование на UML с последующим написанием приложений для платформ J2EE (Java) и .Net (C#, C++ и Visual Basic). Кроме базовой версии, имеется уменьшенный вариант системы для индивидуальных раз­работчиков и небольших групп (Together Solo), а также редакции для платформы IBM WebSphere и среды разработки Jbuilder.

В системе реализована технология LiveSource, которая обес­печивает синхронизацию между проектом приложения и изменениями — при внесении изменений в исходные тексты меняется модель программы, а при изменении модели надлежащим обра­зом изменяется текст на языке программирования. Это исключа­ет необходимость вручную модифицировать модель или перепи­сывать код. Контроль версий осуществляется благодаря функци­ональной интеграции Together и системы StarTeam. Поддержива­ется также интеграция с системой управления конфигурацией Rational ClearCase.

Инструментальные средства тестирования появились в соста­ве комплекса Borland в результате покупки компании Optimizeit. К ним относятся Optimizeit Suite 5, Optimizeit Profiler for .NET и Optimizeit ServerTrace. Первые две системы позволяют выявить потенциальные проблемы использования аппаратных ресурсов — памяти и процессорных мощностей на платформах J2EE и .Net соответственно. Интеграция Optimizeit Suite 5 в среду разработки Jbuilder, a Optimizeit Profiler — в C#Builder и Visual Basic .Net поз­воляет проводить контрольные испытания приложений по мере разработки и ликвидировать узкие места производительности. Система Optimizeit ServerTrace предназначена для управления производительностью серверных 12ЕЕ-приложений с точки зре­ния достижения заданного уровня обслуживания и сбора конт­рольных данных по виртуальным Java-машинам.

Сущность концепции ALM сосредоточена в системе управле­ния конфигурацией и изменениями: именно она объединяет ос­новные фазы ЖЦ ПО. Такой системой является StarTeam, разра­ботанная компанией Starbase. Она выполняет функции контроля версий, управления изменениями, отслеживания дефектов, уп­равления требованиями (в интеграции с CaliberRM), управления потоком задач и управления проектом.

StarTeam совместима с интерфейсом Microsoft Source Code Control и интегрируется с любой системой разработки, которая поддерживает этот API. Кроме того, в системе реализованы сред­ства интеграции со средствами разработки и моделирования Together, JBuilder, Delphi, C++Builder и C#Builder.

В технологии Borland выделяются три уровня интеграции. Функциональная (touch-point) интеграция позволяет обратиться из одной системы к функциям другой, выбрав соответствующий пункт меню. Например, интерфейс управления изменениями StarTeam непосредственно отображается в системах Together, C#Builder и Visual Studio .Net. Такая интеграция дает возможность разделять информацию между системами, но не обеспечи­вает единого рабочего пространства, вынуждает пользователя пе­реключать окна и приводит к дублированию процессов управле­ния структурой проекта. Встроенная (embedded) интеграция обес­печивает работу с одной системой непосредственно в среде дру­гой. Например, не выходя из среды разработки Jbuilder, можно просматривать графики производительности, которые создает система Optimizeit. Самый высокий уровень интеграции — синергетический (synergistic), позволяющий сочетать функции двух различных продуктов незаметно для разработчиков. Для боль­шинства продуктов Borland и других поставщиков синергетическая интеграция пока остается делом будущего, однако ее принци­пы уже начинают реализовываться.

5.4.4.

Не нашли то, что искали? Воспользуйтесь поиском:

Компилируем, как будто на дворе 1992 год

Я изучал ванильный исходный код игры Wolfenstein 3D 1992 года. Несмотря на то, что ей уже 25 лет, и она совершенно устарела для современных платформ, её всё равно можно скомпилировать, если воссоздать окружение.

Для этого требуется всего лишь:

  • Исходный код Wolfenstein 3D.
  • DosBox.
  • Компилятор Borland C++ 3.1.
  • Wolfenstein 3D shareware (чтобы позаимствовать ресурсы).

Настройка файловой системы

Откроем командную строку и создадим две папки, по одной для каждого из необходимых дисков DOS:

Скачиваем файлы

  • Скачиваем Borland 3.1 в system/a .
  • Скачиваем исходный код Wolfenstein 3D в system/c
  • Скачиваем файлы VGA в system/c (в конце статьи я объясню, зачем это нужно).

Теперь все файлы находятся в файловой системе. Просто чтобы проверить, введём:

У вас должно получиться следующее:

Распаковываем всё

DosBox

Скачаем и запустим DosBox:

Монтируем

Смонтируем файловую систему, по одной папке для каждого из дисков:

Устанавливаем компилятор

Настало время установить Borland C++ 3.1:

Нажмите «ввод» при выборе исходного диска (должен быть выбран диск A)

Оставим все параметры по умолчанию и выберем «Start Installation»:

Уведомления предупреждают, что не удаётся найти папку Microsoft Windows, но она нам не нужна, просто нажмём «ввод».

Устанавливаем исходный код Wolfenstein 3D

Система работает и в ней есть компилятор: настало время распаковывать (снова) исходный код.

Оставим путь по умолчанию: \WOLFSRC

Подтвердим («Y») создание директории.

Компилируем

Запускаем Borland C++ 3.1:

После нажатия на OK, используем мышь или горячие клавиши, чтобы выбрать Project → Open Project ..\..\WOLFSRC\WOLF3D.PRJ :

Выберем Options → Directories и изменим значение следующим образом:

Попробуем скомпилировать: Compile -> Build All

Мы получим ошибку: «Cannot find executable TASM»

Выйдем из Borland C++, нужно настроить PATH:

Снова попробуем скомпилировать (Compile -> Build All):

Компилирование выполнилось, но возникла ошибка компоновки: «Unable to find OBJ file», потому что путь к SIGNON.OBJ и GAMEPAL.OBJ в проекте указан неверно.

Они отмечены в C:\SOURCE\WOLF\ :

Удаляем их из проекта (Выберем Projext → Delete item). Добавим их снова через PROJECT → Add Item…. Добавляем WOLFSRC\OBJ\SIGNON.OBJ и WOLFSRC\OBJ\GAMEPAL.OBJ

Попробуем скомпилировать снова (Compile → Build All)

Сработало! Но запустится ли игра?

Достаём ресурсы

Скачайте shareware-версию, или даже лучше: купите как полную версию Wolfenstein 3D.

Вернёмся в DosBox и установим игру в C:\WOLF3D .

После установки игры скопируем только что скомпилированный файл .EXE в папку игры,

Запускаем игру

Хм, выглядит странно…

Не припомню, чтобы игра была такой…

Так, где-то возникла ошибка!

Что случилось?

Дело в конвейере производства игры и в том, как он использовался движком. Когда Адриан Кармак и Кевин Клауд заканчивали работу над всеми графическими файлами, они использовали инструмент IGRABed для их упаковки. В результате получалось 3+2 файла.

  • VGAHEAD.WL1
  • VGAGRAPH.WL1
  • VGADICT.WL1

Файл VGAHEAD — это индекс, содержащий указатели на VGAGRAPH, в котором хранятся данные, сжатые алгоритмом Хаффмана. VGADICT содержит словари Хаффмана для распаковки данных.

Два других созданных файла:

  • GRE.H
  • GRE.EQU

компилируются в движок, как показано на рисунке ниже:

Для чего нужны файлы .H и .EQU ? Если вкратце, то они позволяют получать доступ по имени. Когда IGRABed собирает все файлы, он также создаёт перечисление (enum) с соответствующими индексами:

Таким образом, когда движок запрашивает нужный ресурс, он может использовать логическое имя (L_GUYPIC), а не «магическое число» (2).

Это значит, что движок выпускался с жёстко заданными индексами изображений в файлах VGA. Поскольку ресурсы и база кода эволюционировали после выпуска wolf3D shareware (в Spear of Destiny), новые скомпилированные индексы игры не совпадают с расположением исходных файлов ресурсов.

Запускаем игру (снова)

К счастью, у этой проблемы есть простое решение: кто-то сгенерировал ресурсы VGA заново, чтобы они совпадали с индексами в файлах .H и .EQU, выпущенных с исходным кодом. Просто скопируем эти файлы (если вы используете ресурсы из shareware-версии, то нужно будет изменить расширение файлов с .WL6 на .WL1).

Но мы всё ещё не закончили!

Буфер кадров VGA и соотношение сторон экрана

Это может быть неочевидно для людей, никогда не видевших оригинальную игру, но представленная выше картинка из DosBox не совсем совпадает с тем, что видели игроки в 1992 году. Буфер кадров VGA имел размер 320×200, но у ЭЛТ-мониторов соотношение сторон равно 4:3. Это значит, что буфер кадров при отправке на монитор вертикально растягивался. В DosBox есть опция для компенсации этого:

Поменяем значение aspect на true.

Очистка диска

Открыв каталог какого-либо проекта C++ Builder, можно увидеть, что помимо файлов, составляющих проект и используемых компилятором для генерации выполняемого файла (bpr-, dfm-, h- и срр-файлы), в каталоге есть файлы с расширением obj, tds и еще несколько файлов, расширение которых начинается значком

Рис. 10.20. Содержимое каталога проекта «Проверка знаний». Файлы, выделенные цветом, по окончании работы над проектом можно удалить

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

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

Программа «Очистка диска» удаляет из текущего каталога и всех его подкаталогов файлы, которые по окончании работы над проектом не нужны (если удалить временные файлы проекта, работа над которым еще не завершена, то в процессе компиляции они будут созданы снова).

Окно программы «Очистка диска» в начале ее работы приведено на рис. 10.21. Для выбора каталога, который надо «почистить», используется стандартное диалоговое окно Обзор папок, которое появляется в результате щелчка на кнопке Каталог.

Рис. 10.21. Окно программы «Очистка диска» в начале ее работы

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

Вид формы программы приведен на рис. 10.22. После того как компоненты будут добавлены в форму, необходимо выполнить их настройку — задать значения свойств (табл. 10.7).

Текст программы «Очистка диска» приведен в листинге 10.14.

Илон Маск рекомендует:  Событие onload в HTML

Таблица 10.7. Настройка компонентов


Компонент

Свойство

Значение

Комментарий

Form1

BorderStyle

bsSingle

Тонкая граница окна. Во время работы программы нельзя изменить размер окна, захватив границу мышью

Form1

Borderlcins .biMaximize

false

Во время работы программы в заголовке окна нет кнопки Развернуть

Button2

Enabled

false

В начале работы программы кнопка Выполнить недоступна

Memol

ScrollBars

ssVertical

Есть вертикальная полоса прокрутки

Рис. 10.22. Форма программы «Очистка диска»

Листинг 10.14 . Очистка диска

Основную работу (удаление файлов) выполняет рекурсивная функция clear (рекурсивной называют функцию, которая в процессе работы вызывает сама себя). Решение реализовать функцию clear как рекурсивную не случайно: функция обрабатывает каталоги компьютера, которые являются рекурсивными объектами. Рекурсивным называют объект, частично состоящий из объектов этого же типа.

Алгоритм функции clear приведен на рис. 10.23.

Рис. 10.23. Алгоритм функции Clear

Сначала функция clear обрабатывает текущий каталог: просматривает все файлы и удаляет те, которые надо удалить. Просмотр файлов обеспечивают функции FindFirst и FindNext . Функция FindFirst просматривает каталог, указанный при ее вызове, и записывает в структуру searchRec имя первого из найденных файлов, имя которого соответствует маске. В данной программе маска *.* , т. е. функция выбирает первый по порядку файл. Если файл найден, то выполняется проверка его расширения. Если расширение файла obj, tds или начинается со значка

, то имя файла добавляется в поле Memo1 , а сам файл удаляется с диска. Удаляет файл функция DeleteFiie . После обработки первого файла для поиска следующего вызывается функция FindNext . После того как все файлы текущего каталога будут обработаны, функция clear проверяет, есть ли в текущем каталоге подкаталоги. Проверку выполняет функция FindFirst , которой в качестве параметра передается константа faDirectory , информирующая функцию о том, что надо искать имена каталогов, а не файлов. Если в текущем каталоге нет подкаталогов, то функция clear завершает работу. Если в текущем каталоге есть подкаталоги, то выполняется вход в подкаталог (делает это функция choir ) и вызов функции clear (для обработки подкаталога функция вызывает саму себя). Если в текущем каталоге нет необработанных каталогов, то она завершает работу и возвращает управление функции clear , которая ее вызвала и которая после этого продолжает обработку «своих» подкаталогов.

Вывод окна Обзор папок выполняет функция selectDirectory , которую вызывает функция обработки события click на кнопке Каталог. Для доступа к этой функции в текст программы надо включить директиву #include .

Что происходит в Borland

Последние несколько месяцев многих разработчиков весьма волнуют вопросы о том, что происходит в компании Borland и какой окажется дальнейшая судьба таких продуктов, как Delphi, C++Builder, JBuilder и Interbase. Настоящая статья, написанная по итогам семинара, проведенного в Москве хорошо известным нашим читателям Джейсоном Воксом, директором по средствам разработки европейского офиса Borland (интервью с которым мы публиковали неоднократно в течение последних пяти лет), ставит своей целью ответить на данные вопросы в той степени, в какой это возможно на текущий момент.

Предыстория вопроса

Не секрет, что средства разработки компании Borland в России очень популярны, причем степень этой популярности намного выше, чем в Европе и США. Объяснение этому следует искать в событиях начала и середины 90-х годов прошлого века, когда происходило становление отечественной индустрии разработки программного обеспечения, обслуживающей процесс активной автоматизации российских предприятий, в большинстве своем вообще не знавших и не использовавших до этого момента никакой вычислительной техники (в отличие от предприятий западных). И именно в этот момент российские разработчики, в ряды которых влились бывшие советские инженеры самых разных специальностей, неожиданно ставших невостребованными, нуждались в инструментах, наиболее пригодных для быстрого создания приложений, поскольку в эпоху внезапно наступивших рыночных отношений скорость и качество разработки при минимуме времени, затраченном на изучение инструмента, нередко означали банальное биологическое выживание.

Что могли тогда предложить российским разработчикам производители программного обеспечения, если на законное приобретение инструментов у разработчиков нередко вообще не было средств, а у самих производителей ПО не было ни доходов от российских клиентов, ни возможностей активно действовать на территории России? Насколько я помню, в то время происходило следующее. Корпорация Microsoft, всегда отличавшаяся активными действиями и четким пониманием ситуации на рынке, имела в своем арсенале не самый плохой набор средств разработки. Но в те годы эта компания сосредоточилась на продвижении в России своих намного более массовых и востребованных продуктов — операционных систем и офисных приложений. Компания Borland, в отличие от Microsoft, не производила операционных систем, да и не пыталась активно предлагать имеющиеся у нее в то время офисные приложения — ее усилия в России были сосредоточены на продвижении средств разработки. Хотя эта компания была не единственным поставщиком подобных инструментов, пытавшимся завоевать российский рынок, ее инструменты были наиболее качественными из всех предлагаемых, а выпущенная в середине 90-х годов первая версия Borland Delphi была интересным инновационным продуктом, так что о конкурирующих инструментах можно было просто забыть. Именно этот продукт, как в котором впервые были одновременно реализованы технология визуальной разработки пользовательских интерфейсов, на редкость удачная визуальная поддержка работы с базами данных и архитектуры клиент-сервер, а также полноценная компонентная модель на основе библиотеки, доступной в виде исходных текстов, определил направления дальнейшего развития средств разработки на всё последующее десятилетие вплоть до нынешнего дня.

Замечу также, что в характерных именно для России того периода условиях, когда программное обеспечение приобреталось в виде нелицензионных копий, ценовые характеристики не играли никакой роли в вопросе выбора ПО, а на первое место встали характеристики качественные — с ними у инструментов Borland все было в порядке. К моменту же появления возможности легального приобретения инструментов пришло осознание того, что вложения в знания и опыт разработчиков — это куда более ценные активы, чем коробки с программным обеспечением. Поэтому инструменты Borland активно продолжали использоваться и позже — и в конце 90-х, и в начале 2000-х.

К чему привели те события десяти-пятнадцатилетней давности? К тому, что сейчас на огромном количестве российских предприятий эксплуатируются бизнес-приложения, написанные с помощью инструментов Borland (Delphi, C++Builder, JBuilder) и содержащие миллионы строк кода, а среди российских разработчиков есть немало высококвалифицированных специалистов с многолетним опытом разработки приложений с помощью инструментов этой компании. Этому не помешал даже выпуск откровенно неудачного продукта Delphi 8. Многие разработчики продолжали пользоваться предыдущими версиями Delphi и вполне благожелательно восприняли и появление двух намного более удачных последующих версий этого продукта — Delphi 2005 и Delphi 2006, и постоянные приобретения в течение последних пяти лет компанией Borland разнообразных фирм — производителей средств поддержи жизненного цикла приложений, ориентированных на большие команды разработчиков и крупных заказчиков.

Все было замечательно до появления пресс-релиза Borland от 8 февраля (как и другие отраслевые СМИ, мы цитировали его в новостном блоке мартовского номера нашего журнала). Там сообщалось о приобретении известного поставщика средств тестирования компании Segue и, как бы между делом, о прекращении инвестиций в часть бизнеса Integrated Development Environment, связанную с разработкой, в частности, Borland Developer Studio и JBuilder, о выделении этого направления в отдельный бизнес с использованием внешнего инвестора. Подобное заявление, будучи сделанным по правилам, принятым для американских публичных компаний, не могло не вызвать беспокойства у достаточно далеких от американских правил ведения бизнеса российских разработчиков, руководителей ИТ-подразделений и отделов разработки ПО, так как сегодня информационные технологии из имиджево-маркетинговой новинки превратились в обычный бизнес-инструмент, а следовательно, затраты на них должны окупаться. В этих условиях неопределенная судьба целой группы инструментов, использующихся разработчиками в той или иной компании, означает наличие серьезного финансового риска и для этой компании (связанного с переписыванием приложений в будущем), и для ее разработчиков (стоимость навыков которых на рынке труда может заметно упасть). Собственно, последнее уже произошло: «продать» знания Delphi за приемлемую зарплату после выхода данного пресс-релиза стало весьма проблематичным.

Работая в ИТ-индустрии не первый десяток лет, я не припомню новостей, подобных этой, — обычно новости рассылаются по печатным изданиям, когда событие уже произошло (подразделение А продано компанией B компании С). И как-то не связывалась эта новость ни с планами Borland по развитию ее продуктов (помните интервью c Дэвидом Интерсимоном в январском номере нашего журнала?), ни с последующими новостями (например, о выпуске Borland C++Builder 2006). Впрочем, не мне учить американские компании пиару и маркетингу.

Что происходит на самом деле

Визит в Москву Джейсона Вокса, директора по средствам разработки Borland в регионе EMEA, проводившего 23 мая семинар, посвященный перспективам развития технологий Borland в области разработки прикладных систем, для руководителей групп разработки, менеджеров проектов, архитекторов, разработчиков, представителей независимых поставщиков ПО, несколько прояснил ситуацию с той самой злополучной новостью. Все оказалось не столь ужасно, как это следовало из упомянутого пресс-релиза.

Джейсон Вокс, директор по средствам разработки Borland
в регионе EMEA

Как утверждает Джейсон Вокс, речь идет о разделении Borland на две компании, одна из которых будет заниматься созданием и поставкой решений для управления жизненным циклом приложений ALM (Application Lifecycle Management), а другая, условно называемая DevCo (Developer Company), — созданием интегрированных сред разработки IDE (Integrated Development Environment) и систем управления базами данных. Это подтверждает вышедший в начале мая пресс-релиз Borland, сообщающий, что 180 человек во главе с Найджелом Брауном выделены в отдельную группу внутри компании, которая будет заниматься разработкой, продажей и поддержкой СУБД и средств разработки.

Причиной разделения компании на две является то, что бизнес ALM и IDE устроен по-разному: первый ориентирован на относительно немногочисленных крупных заказчиков, обслуживаемых непосредственно компанией Borland, второй — на огромную армию потребителей коробочных продуктов, приобретающих и сами продукты, и услуги по обучению через многочисленных партнеров Borland. Отметим, что ни для кого не было секретом, что развитие направления ALM происходило за счет средств, заработанных на продажах IDE-продуктов, отнюдь не являющихся убыточными.

О продаже бизнеса IDE речь, как выяснилось, не идет. Словосочетание «найти покупателя», присутствовавшее в оригинальном пресс-релизе, реально означало поиск инвестора, который бы согласился вложить деньги в компанию с условным названием DevCo, и в настоящее время компания Borland находится в процессе выбора инвестора из некоторого количества претендентов. При этом не исключено, что инвестором окажется компания, не имеющая отношения к производству программного обеспечения.

Лично у меня сложилось впечатление, что часть компании, отвечающей за ALM, хочет (и, похоже, имеет возможность) оставить за собой бренд Borland, реально ставший ценным активом благодаря высококачественным средствам разработки, а отнюдь не ее собственной деятельности. Впрочем, это не так страшно: ни брендинг, ни ребрендинг (уже имевший место в этой компании несколько лет назад и благополучно ныне всеми забытый) при всем желании не заменят ни качества, ни востребованности продуктов.

ECO (Enterprise Core Objects) — технология поддержки создания приложений на основе концепции MDA (Model-Driven Architecture — архитектура, управляемая моделью). Данная технология предполагает не только широко распространенное сегодня описание архитектуры приложения с помощью средств UML-моделирования и использование созданной модели в качестве основы приложения, но и поддержку возможности внесения последующих изменений логики работы приложения непосредственно в модель с тем, чтобы эти изменения отражались на работе приложения без его модификации. При таком подходе модель определяет поведение приложения на этапе выполнения. Например, ECO позволяет создать диаграмму переходов и состояний (Statechart), которая без необходимости дополнительного написания кода определит поведение приложения, например в части прохождения документа в системе документооборота.

Диаграмма переходов и состояний (Borland Developer Studio)

В основе функционирования ECO лежит несколько базовых принципов:

  • модель первична, но может изменяться, что автоматически должно приводить к изменению поведения приложения;
  • моделируются бизнес-объекты, их атрибуты и поведение. Все остальные составные части приложения (в частности, долговременное хранение объектов в СУБД через встроенные в ECO механизмы объектно-реляционного отображения) runtime-составляющая ECO берет на себя. Иными словами, разработчики оперируют бизнес-объектами, а не строками или наборами данных реляционной модели;
  • бизнес-объекты в ECO представляются соответствующими классами на языках Delphi for .NET или C#;
  • для отображения информации, содержащейся в бизнес-объектах, используются такие же визуальные компоненты, как и для работы с базами данных.

Ближайшие планы развития средств разработки и СУБД

Если принять во внимание оглашенные на семинаре и последующей пресс-конференции планы развития средств разработки и СУБД, то достаточно сложно представить себе закрытие подобного направления. Эти планы включают создание новых версий Delphi, предназначенных для .NET Framework 2.0, Windows Vista, 64-разрядных версий Windows, версии JBuilder 2007, основанной на платформе Eclipse, а также для ряда новых версий СУБД Interbase.

Borland Developer Studio

Говоря о планах развития Borland Developer Studio (включающего Delphi, C++Builder и C#Builder), в первую очередь стоит отметить, что компания Borland считает одним из важнейших стратегических направлений развития средств разработки для Windows поддержку платформы Win32 (для которой, собственно, и написаны российскими разработчиками вышеупомянутые миллионы строк кода) и дальнейшего развития библиотеки VCL (Visual Component Library) с целью создания ее версий для различных платформ. В планах компании — бесшовная миграция библиотеки VCL с платформы Win32 на Windows Vista (после выхода последней), поддержка библиотекой VCL платформ .NET Framework 2.0 и .NET Compact Framework, а также создание версий Delphi и C++Builder для 64-разрядных версий Windows. Кроме того, следует ожидать и дальнейшего развития такого перспективного направления, как разработка приложений на основе UML-моделей, включая поддержку выполнения приложений в соответствии с диаграммами состояний и поддержку реализации ECO-приложений с помощью библиотеки VCL для .NET. Отметим также, что применение технологии ECO (Enterprise Core Objects) вскоре будет доступно пользователям всех редакций Delphi и C++Builder (рис. 1).

Илон Маск рекомендует:  Что такое код imagecreatefromgd

Рис. 1. Ближайшие планы развития Borland Developer Studio

JBuilder

JBuilder довольно давно занимает лидирующие позиции на рынке средств разработки Java-приложений, и этому не помешал даже все тот же вышеупомянутый пресс-релиз. Так, согласно проведенному в начале этого года исследовательской компанией Evans Data Corp опросу почти 800 разработчиков, Borland JBuilder был признан обладающим лучшими и самыми высокопроизводительными компилятором, отладчиком и оптимизатором, что дало повод авторам отчета высказаться в пользу приобретения инструментов разработки Borland корпорацией Oracle, чьи собственные инструменты оказались в аутсайдерах опроса.

В планах дальнейшего развития JBuilder — выпуск обновлений имеющейся версии, в том числе и для свободно доступной для загрузки редакции JBuilder Foundation, а также создание новой версии JBuilder на основе набирающей популярность платформы Eclipse (рис. 2).

Рис. 2. Ближайшие планы развития Borland JBuilder

Опытные пользователи JBuilder, возможно, помнят, что первая среда разработки JBuilder была создана с помощью Delphi, а вскоре была разработана среда, написанная полностью на языке Java и считавшаяся одним из лучших продуктов, написанных на этом языке (рис. 3). Так для чего же понадобилось в очередной раз менять платформу, на которой основан JBuilder?

Рис. 3. Эволюция сред разработки JBuilder

Проект Eclipse был начат в 1998 году корпорацией IBM, поставившей перед собой цель создать интегрированную среду Java-разработки нового поколения и предоставившей сообществу Open Source часть исходного кода своего средства разработки Java-приложений Websphere Studio Workbench. Сегодня, по прошествии пяти лет с момента создания, платформа Eclipse стала настолько популярной, что начала вытеснять с рынка широко применявшиеся коммерческие инструменты. Основные причины популярности Eclipse состоят не только в относительно невысокой стоимости инструментов, основанных на данной платформе, но и в широком выборе модулей расширения для нее, равно как и коммерческих продуктов на ее основе. На данный момент проект Eclipse является одним из лидирующих направлений развития рынка средств разработки, при этом компания Borland имеет статус стратегического разработчика организации Eclipse Foundation.

Отметим, однако, что перенос JBuilder на платформу Eclipse обусловлен не только и не столько желанием компании Borland следовать современным тенденциям и продолжать оказывать заметное влияние на их формирование, сколько неоспоримыми преимуществами, которые в этом случае получат пользователи продукта. Так, наличие огромного количества инструментов для Eclipse (как коммерческих, так и с открытым кодом) для поддержки коллективной разработки, тестирования, моделирования, бизнес-анализа и создания отчетов, визуального создания Web-служб и компонентов Enterprise Java Beans позволит каждому разработчику организовать максимально удобную среду разработки приложений, содержащую всю функциональность, требующуюся для решения конкретных задач.

Interbase

В планах развития СУБД InterBase — создание в ближайшее время 8-й версии, поддерживающей двухбайтные строковые данные и позволяющей осуществлять резервное копирование путем обновления предыдущей копии (incremental backup), а затем — версии 8.5 с поддержкой создания серверного кода на языке Java и средствами, упрощающими использование этой СУБД в качестве составной части решений независимых разработчиков. В 2007 году ожидается выпуск 9-й версии, отличающейся поддержкой написания кода на .NET-совместимых языках и расширенными средствами поддержки защиты данных (рис. 4).

Рис. 4. Ближайшие планы развития Borland Interbase

Вместо заключения

Итак, слухи о скорой кончине Delphi, C++Builder и Interbase оказались, мягко говоря, преувеличенными, а февральская новость от Borland, к счастью, была не столь пугающей, как это могло показаться на первый взгляд. Возможно, все это даже к лучшему: отделение IDE-подразделения от большой компании, ориентированной на крупных заказчиков и гигантские проекты, позволит ему сосредоточиться на задачах и потребностях разработчиков, а не многочисленных менеджеров, пытающихся управлять их работой. Впрочем, поживем — увидим.

Правильная компиляция в Borland 6

06.11.2006, 20:27

компиляция исходников Borland C++
Есть исходники криптоалгоритма на С. Были написаны OpenWatcom C и Borland C++ builder. Помогите.

Подскажите где можно найти Borland C++ Builder или Borland Developer Studio 2006 C++ ? Очень надо.
Подскажите где можно найти Borland C++ Builder или Borland Developer Studio 2006 C++ ? Очень надо.

не могу запустить ехешник ,Borland 5 и Borland 6
вообщем написал прогу , писал в 6рке когда компилю ругается на Build MYBASE.h(348): E2451.

Правильная компиляция
#indlude #include using namespace std; int main() < int Fedya = 40;.

Правильная компиляция проекта
Привет:) Я установила на Делфи(7 версия) очень много компонентов. Когда я создаю проект и когда.

Состав и назначение оболочки Borland C (стр. 1 из 4)

Кафедра: Автоматика и информационные технологии

СОСТАВ И НАЗНАЧЕНИЕ ОБОЛОЧКИ BORLAND C++3.1

Справка по структуре оболочки Borland C

3.Этапы преобразования программы hello.cpp.

Работа файлами (File)

Трансляция и компоновка (Compile)

Работа с окнами (Window)

Система помощи (Help)

Перемещения на большие расстояния:

Команды вставки и перемещения

Команды обработки блоков:

6.Сборка и выполнение программ в интегрированной среде Borland C++ 3.1

Состав системы программирования Borland C++ 3.1

7.Интегрированная среда программирования под DOS

Установка в среде Borland С 3.1 полных имен каталогов.

Настройка параметров управления проектом

Интегрированная среда программирования под Windows

Настройка интегрированной среды Borland C++ 3.1

Выбор стандарта языка Си.

Установка параметров подсистемы Make

Задание аргументов командной строки.

Сохранение параметров настройки интегрированной среды.

1.Первая программа “Hello”

2.Вторая программа “2+2”

3.Третья программа “Что нибудь из Examples”

4.Этапы преобразования программы

5.Работаем в оболочке

6.Работаем в отладчике.

7.Справка по опциям

— Вызов оболочки из каталога BIN

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

— Вызов оболочки из пользовательского каталога

Для реализации этого способа в файле autoexec.bat должна быть задана переменная окружения PATH=c:\bc31\bin

— Вызов оболочки из пользовательского каталога по расширению cpp, c, prj или tc

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

Замечание. Если при входе в оболочку в текущем каталоге находится ровно один проектный prj-файл, то будет открыт и именно этот проект. Если prj-файла нет или их более одного, то компилироваться будет файл активного окна.

2. Программа “Hello”

В дальнейшем будем использовать в качестве примеров два варианта простой программы

void main(int argc, char *argv[])

if(strcmp(argv[1], «English») == 0)

Этапы преобразования программы hello.cpp.

1. Прекомпиляция. Осуществляется программой cpp.exe. Создает файл hello.i

2. Компиляция. Осуществляется программой bcc.exe. Создает файл hello.asm

3. Ассемблирование. Осуществляется программой tasm.exe. Создает файл hello.obj

4. Линковка. Осуществляется программой tlink.exe. Создает файл hello.exe

5. Загрузка. Реализуется операционной системой. Исполняемый файл загружается в ОЗУ для исполнения.

При работе в оболочке файлы hello.i и hello.asm не создаются. Для их построения надо исполнить следующие команды из текущего каталога

D:\bc31\bin\cpp.exe -ID:\bc31\include hello.cpp

D:\bc31\bin\bcc.exe –S -ID:\bc31\include -LD:\bc31\Lib hello.cpp

Система меню

Меню верхней части экрана. Вход по F10 или по Alt+»Z», где Z — первая (прописная) буква в соответствующем слове меню (например, Alt+F строка меню File)

Ё File Edit Search Run Compile Debug Project Options Window Help

Некоторые команды меню выполняются при нажатии функциональных клавиш (F1-F10) в сочетании с Shift, Alt или Ctrl, что указано в соответствующих строках меню.

Repaint desktop Перерисовка текущего окна

Вызов сторонних приложений

New Создать новый файл с временным именем Nonamexx.c и открыть окно
Open (F3) Открыть окно с выбранным файлом. Файл выбирается в отдельном окне. При вводе нового имени – создается.
Save (F2) Сохранить текущее окно в файле
Save as. Сохранить текущее окно в отдельном файле с явно заданным именем
Save all Сохранить все окна в файлах
Change dir. Выбрать текущий каталог файлов
Print Печать текущего окна
DOS Shell Запуск оболочки DOS (возврат по команде EXIT)
Quit (Alt+X) Выход
Undo (ALT+BkSp) Отменить последнюю команду
Redo (Shift+Alt+BkSp) Повторить последнюю команду
Cut (Shift+Del) Удалить блок с записью в буфер
Copy (Ctrl+Ins) Копировать блок в буфер
Paste (Shift+Ins) Вставить блок из буфера
Clear (Ctrl+Del) Удалить блок
Copy Example Копировать выбранный пример из Help в буфер
Show Clipboard Просмотр буфера
Find Искать по образцу
Replace Искать по образцу с заменой
Search again (Ctrl+L) Искать следующий за найденным по Find или Replace
Go to line number Переход к строке с заданным номером
Previous error (Alt+F7) Переход к строке программы, вызвавшей предыдущее сообщение (message)
Next error (Alt+F8) Переход к строке программы, вызвавшей следующее сообщение
Locate function Поиск заголовка функции в программе
Run (Ctrl+F9) Команда «Make» и выполнение программы
Programm reset (Ctrl+F2) Сброс и установка начального состояния программы при отладке
Goto cursor (F4) Выполнять программу до строки, отмеченной курсором
Trace into (F7) Выполнить одну строку программы с трассировкой вызываемой функции
Step over (F8) Выполнить одну строку программы без трассировки вызываемой функции
Arguments Задать аргументы командной строки программы при отладке

Трансляция и компоновка (Compile)

Run (Ctrl+F9) Команда «Make» и выполнение программы
Compile (Alt+F9) Безусловная трансляция и компоновка файла текущего окна или проекта
Make (F9) Компоновка файла текущего окна или проекта
Link Трансляция и компоновка файла текущего окна или проекта (каждый файл транслируется только при условии внесения изменений в текст программы, в том числе в файлы, включенные директивой include)
Build all Трансляция файла текущего окна
Information Инофорамция о текущем каталоге, используемой памяти, количестве ошибок и предупреждений
Rеmove messages Очистить окно сообщений транслятора

При трансляции и компоновке открывается окно сообщений транслятора (message), в который выводятся сообщения об ошибках и предупреждения. При выборе сообщения в окне message происходит позиционирование в окне к строке, вызвавшей это сообщение. При нажатии Enter на выбранном сообщении производится переход в окно к строке, вызвавшей это сообщение.

Inspect (Alt+F4) Просмотр и модификация (инспектирование) значения текущей переменной под курсором (Аlt+F4) или явно указанной переменной или адресного выражения (меню). Значение переменной или выражения отображается в отдельном окне, окно закрывается по Esc. Alt+M — модификация выбранного поля. Для указателя отображается и модифицируется указуемый тип данных, для массива — элементы массива.
Evaluate/modify (Ctrl+F4) Вычисление и модификация в отдельном окне
Call stack (Ctrl+F3) Последовательность (стек) вызовов функций
Watches Просмотр выражений и переменных
Addwatch Добавить точку просмотра
Deletewatch Удалить текущую точку просмотра
Editwatch Редактировать текущую точку
Removeallwatch Удалить все точки просмотра
Toggle breakpoint Ctrl+F8 Установить/отменить точку останова в текущей строке
Breakpoints Просмотр/редактирование списка точек останова

Файл проекта используется при разработке модульной программы, состоящей из нескольких файлов (модулей). Проект содержит список файлов исходных текстов (.c и .cpp) или объектных модулей (.obj), а также все установки параметров транслятора и оболочки. При работе без файла проекта оболочка транслирует, компонует и выполняет файл текущего окна. При наличии открытого файла проекта оболочка руководствуется списком файлов проекта.

Borland C++ Builder 6 для начинающих (статья четвертая)

Borland C++ Builder 6 для начинающих (статья четвертая)

При разработке программ, особенно в первое время, возможны синтаксические и логические ошибки. Чем сложнее программа, тем труднее их обнаружить. Для облегчения обнаружения и устранения ошибок в среде разработки Borland C++ Builder 6 существует встроенный отладчик программ. Он позволяет выполнять программу по шагам, устанавливать точки останова, просматривать переменные и производить другие операции.

ОТЛАДКА ПРОГРАММ
Несмотря на то, что созданные нами программы очень просты, я хочу рассказать об их отладке. Дело в том, что рано или поздно в создаваемой программе могут появиться ошибки. Это могут быть синтаксические или более сложные для обнаружения логические ошибки. И тогда потребуется инструмент для их устранения. Чем быстрее мы познакомимся с таким инструментом, тем легче нам будет создавать более сложные программы.
После разработки любого приложения необходимо произвести его компиляцию, компоновку и тестирование. Эти операции выполняются автоматически каждый раз при выполнении команды Run из главного меню среды разработки Borland C++ Builder 6. Однако данные процедуры можно произвести по отдельности с целью сокращения времени на отладку всего проекта в целом. В нашем очередном примере мы будем пользоваться различными командами трансляции (компиляции и компоновки) проекта. Рассмотрим, в чем состоит отличие между этими командами. Например, компиляцию отдельного модуля программы можно выполнить с помощью команды главного меню Project Compile. При этом не будет затрачено времени на компиляцию и компоновку всего проекта в целом. Команда главного меню Project Make позволяет выполнить компиляцию только тех модулей, которые были отредактированы, после чего выполняет компоновку проекта с созданием исполняемого модуля ехе. Таким образом, эта команда также экономит время на трансляцию проекта в целом. И только команда Project Build компилирует все модули независимо от того редактировались они или нет> а затем компонует проект и готовит исполняемый файл с расширением ехе. Данная команда необходима для переработки всего проекта после изменения настроек компилятора или среды разработки в целом. Команда Project Run, в отличие от Project Build, автоматически запускает исполняемый файл.
На этапе компиляции происходит автоматический поиск средой разработки синтаксических ошибок, неправильного объявления или использования переменных и т. п. При обнаружении подобных ошибок в инспекторе кодов будет выведено соответствующее сообщение об ошибке или предупреждение. Предупреждение, в отличие от ошибки, не блокирует выполнение программы, но не гарантирует корректность ее работы. Если ошибок в программе нет, компилятор создает объектный (машинный) код программы в модулях (файлах) с расширением obj. При компоновке программы также выявляются некоторые виды ошибок, связанные с отсутствием объявления переменных, функций, библиотек и т. п. и выполняется объединение всех объектных модулей и библиотек при необходимости в один исполняемый файл с расширением ехе. Вместо исполняемого файла может создаваться библиотечный файл с расширением lib или dll при соответствующих установках среды разработки. Рассмотрим выполнение описанных процедур на конкретном примере. Создадим небольшое приложение на форме Forml с двумя кнопками Button 1, Button2 и одним элементом надписи Label 1. О том, как размещаются эти элементы на форме, рассказывалось в предыдущих статьях цикла. Это приложение должно сообщать о числе нажатий на первую кнопку. При нажатии на вторую кнопку приложение должно закрываться. Разместите эти элементы на форме Forml и измените размер формы в соответствии с рис. 1.

Илон Маск рекомендует:  Что такое код hw_getobjectbyqueryobj

Теперь замените свойство Caption всех объектов приложения в инспекторе объектов на заголовки Программа 2, Кнопка 1, Выход и пустую строку соответственно. В результате у вас должно получиться окно, приведенное на рис. 2. Обратите внимание, что элемента Labell, располагающегося выше кнопок, не видно, поскольку мы заменили его свойство Caption на пустую строку, т. е. очистили это свойство.

Щелкните дважды левой кнопкой мыши по созданной кнопке Выход и в открывшемся окне инспектора кодов впишите между фигурными скобками заготовки обработчика события команду закрытия приложения CloseQ;. Вернитесь к окну формы и щелкните дважды левой кнопкой мыши по кнопке с названием Кнопка 1. В отрывшемся окне инспектора кодов впишите между фигурными скобками строку команд:

Label1->Caption=»Кнопка 1 нажата » + IntToStr(++i) +» раз»;

В этой строке команд выполняется присвоение (знак равенства) свойству Caption элемента надписи Label 1 текстовой строчки, состоящей из трех слагаемых частей. Поскольку свойство Caption элемента надписи Labell предназначено для отображения текста, мы должны присваивать этому свойству только текстовые (строковые) значения. В языке C++ такие строковые значения заключаются в кавычки. Первая и последняя части присваиваемого значения таковыми и являются. Счетчиком числа нажатий на кнопку в программе будет служить переменная i, которая должна автоматически увеличиваться на единичку перед выводом. Для этой цели перед ней записаны два знака плюс. Данная операция в языке C++ называется автоинкрементом. Для превращения числовой переменной i в строковую используется встроенная функция C++ преобразования целых чисел в строки IntToStrQ. Итак, в одной строке команд мы осуществили целый ряд операций. Разве это не изящный язык программирования?!
Сохраните проект под именем butct. bpr, а программный модуль — под именем Ubutct.cpp. Впрочем, имена вы можете дать другие. Не изменяйте только расширения файлов.
Теперь попробуем скомпилировать, скомпоновать и выполнить данное приложение, а заодно проверить, нет ли в нем ошибок. Выполните команду Compile из группы Project главного меню или нажмите «горячую» комбинацию клавиш для компиляции программы Alt+F9. Перед вами откроется окно, приведенное на рис. 3.

В верхней строке этого окна отображается путь размещения и имя проекта программы. В следующей строке вначале отображается процесс компиляции, сменяющийся записью о завершении данной операции Done и сообщением об обнаруженных ошибках There are errors (здесь есть ошибки). Ниже отображается номер текущей строки программы Current line и общее количество арок программы Total line. В нижней строке отображается обнаруженное на данный момент число замечаний Hints, предупреждений Warnings и ошибок Errors. Как видим, в программе есть одна ошибка. Нажмите кнопку ОК в окне, и перед вами окажется окно инспектора кода с выделенной строкой, имеющей ошибку, и сообщением о типе ошибки внизу окна (рис. 4).

Сообщение «[C++ Error] Ubutct.cpp(25): E2451 Undefined symbol ‘i’» говорит о том, что компилятор C++ обнаружил ошибку в 21-й строке модуля Ubutct.cpp. Код ошибки Е2451 означает, что обнаружен необъявленный символ. В нашем случае это переменная с именем i. Действительно, мы не объявили ее в программе, хотя и сделали это намеренно, с целью получения сообщения об ошибке в качестве примера. В языке C++, как впрочем и в других языках программирования, все переменные, используемые в программе, необходимо объявлять. Это делается для того, чтобы компилятор знал, сколько ячеек памяти необходимо резервировать в памяти компьютера для ее хранения. Поскольку различные типы переменных требуют для своего хранения различное количество ячеек памяти (байт), рационально резервировать для них лишь необходимый объем памяти. В нашем случае переменная i является целой, т. е. принимающей только целочисленные значения. Для ее объявления необходимо использовать директиву int (от integer — целый). Можно сделать такое объявление непосредственно в тексте программы обработчика событий, но тогда эта переменная будет недоступна в Других функциях обработчика. Поэтому мы объявим ее в блоке public (общедоступный) файла описания заголовков Ubutct.h. Для этого необходимо щелкнуть левой кнопкой мыши по закладке Ubutct.h инспектора кодов и вписать строку объявления переменной с комментариями сразу же после строчки public. Ниже приведена эта запись полностью.
public: // User declarations
int i; // Переменная — счетчик

Теперь снова выполним компиляцию и обнаружим, что ошибок нет. Но не спешите радоваться. Дело в том, что мы не присвоили переменной i начального значения. Компилятор не обращает на это внимания и не выдает никаких сообщений по этому поводу. Однако в программе это может привести к недоразумениям. Поэтому выполним присвоение начального значения переменой i, сделав запись i=0; в тексте программы обработчика создания формы (ведь при запуске программы Кнопка 1 не была нажата ни разу). Для этого щелкните дважды левой кнопкой мыши по форме приложения и в открывшемся окне инспектора кода впишите между фигурными скобками текста программы строку

Выполним компоновку проекта с помощью команды Make из группы Project главного меню или просто нажав «горячую» комбинацию клавиш для компоновки программы Ctrl+F9. В результате мы должны получить безошибочную компоновку приложения. Теперь приложение можно сохранить и запустить на выполнение с помощью команды Run или воспользоваться «горячей» кнопкой запуска программы F9.
На экране появится окно нашей программы. Щелкая левой кнопкой мыши но кнопке с названием Кнопка 1 вы увидите, что каждый раз в окне будет появляться сообщение о числе нажатий этой кнопки.
В будущем каждый раз перед запуском приложения после редактирования не забывайте сохранять проект. Это позволит избежать потери информации при зависании программы, вызванном наличием ошибок в ней.
Потренируйтесь самостоятельно, специально внося ошибки в программу и изучая возникающие при этом сообщения об ошибках при компиляции и компоновке проекта.

СТРУКТУРА ФАЙЛОВ
Теперь рассмотрим более подробно структуру основных файлов программы для того, чтобы не теряться при возникновении сложных ошибок и иметь представление о том, как работает программа устранения ошибок. Вернемся к нашему примеру, приведенному выше, и рассмотрим состав файлов проекта. Для лучшего понимания текста программ тем, кто не знаком с языками программирования, я рекомендую почитать, например, книгу [1]. В языке C++ главной функцией проекта является функция main. В программах, написанных для операционной системы Windows, главной функцией является WinMain. Данная функция содержится в программном модуле butct.cpp нашего примера. Ниже приведено его содержимое.

В этих нескольких строчках содержатся директивы и команды, с помощью которых формируется программа. Строчки, начинающиеся с символов //, являются строками комментариев для разделения или снабжения текстовым описанием частей программы. В языке С допускается также заключать комментарии между символами I* и */. В этом случае комментарии могут состоять из нескольких строк, заключенных между этими символами. Строка #include является строкой препроцессора, т. е. программы, которая будет подключать к нашим модулям дополнительные файлы библиотек и описаний. В данном случае строка #include говорит препроцессору о том, что ему необходимо подключить к нашей программе заголовочный файл vclh, в котором содержатся описания визуальных компонентов Borland C++ Builder. Директива #pragma hdrstop завершает список файлов заголовка для препроцессора. Строка макрокоманды USEFORMC^’Ubutct.cpp», Forml); подключает к проекту модуль Ubutctcpp и форму Forml. Далее следует заголовок программы главной функции проекта WINAPI WinMain(HINSTANCE, H1NSTANCE, LPSTR, int). Перед названием главной функции находится дескриптор W1NAPI, который позволяет использовать множество полезных готовых функций Windows в нашем приложении. В скобках заключены параметры главной функции, необходимые для опознания нашего приложения среди множества других работающих приложений, передачи параметров в программу в командной строке и для определения конфигурации окна нашего приложения. После заголовка главной функции следует блок кода, в котором может произойти исключение — аварийная ситуация (останов, ошибка программы и пр.). Такой блок должен начинаться с ключевого слова try. В этом блоке заключены операторы инициализации компонентов приложения Application->Initialize();, создания формы приложения Application
>CreateForm(__classid(TForm1),
&Form1); и выполнения приложения Application->Run();.
Блок catch (Exception &exception) предназначен для включения операторов, вызываемых при возникновении аварийной ситуации. В нашем примере программы таким оператором является стандартный обработчик исключений Application- >ShowException (&exception);. В следующих примерах мы рассмотрим, как его использовать. Аналогичная конструкция блоков повторяется для копии приложения, запущенного вторично. Последним оператором тела функции WinMain является return 0; — оператор, завершающий приложение с кодом 0.
Данный файл можно редактировать, изучив предварительно команды и функции Windows и получив некоторый опыт разработки программ. Поскольку этот файл создается средой разработки автоматически, мы в нашем курсе обучения не будем его изменять намеренно, чтобы не отягощать себя лишними проблемами. Тем не менее, при возникновении ошибок компилятора или компоновщика, не лишним будет посмотреть содержимое данного файла и отредактировать его в случае необходимости. Например, при создании новой формы и последующем ее удалении в этом файле могут сохраниться записи о несуществующей форме, приводящие к ошибкам во время трансляции. В таком случае необходимо удалить лишние записи из этого файла для устранения подобных ошибок.
Далее рассмотрим структуру файла butct.cpp. Содержимое этого файла целиком приведено ниже.

Большинство строк этого файла нам уже известно из предыдущего описания и самого примера программы. Рассмотрим лишь неизвестные строки. Строка #pragma package(smart_init) определяет последовательность инициализации составных частей программы. Строка #pragma resource «*.dfm» сообщает препроцессору о том, что для формы необходимо использовать файл *.dfrn с именем данного файла. В строке TForml *Forml; объявляется класс TForml для формы Forml. Далее следуют подпрограммы создания формы приложения и обработчики событий, рассмотренные выше.
Обратите внимание на строку #include «Ubutct.h», которая подключает к модулю заголовочный файл Ubutct.h, представленный ниже.

#ifndef UbutctH
#define UbutctH
//—————————————————————————
#include
#include
#include
#include
//—————————————————————————
class TForm1 : public TForm
<
__published: // IDE-managed Components
TButton *Button1;
TButton *Button2;
TLabel *Label1;
void __fastcall Button2Click(TObject *Sender);
void __fastcall Button1Click(TObject *Sender);
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public: // User declarations
int i; // Переменная — счетчик
__fastcall TForm1(TComponent* Owner);
>;
//—————————————————————————
extern PACKAGE TForm1 *Form1;
//—————————————————————————
#endif

Правильная компиляция в Borland 6

06.11.2006, 20:27

компиляция исходников Borland C++
Есть исходники криптоалгоритма на С. Были написаны OpenWatcom C и Borland C++ builder. Помогите.

Подскажите где можно найти Borland C++ Builder или Borland Developer Studio 2006 C++ ? Очень надо.
Подскажите где можно найти Borland C++ Builder или Borland Developer Studio 2006 C++ ? Очень надо.

не могу запустить ехешник ,Borland 5 и Borland 6
вообщем написал прогу , писал в 6рке когда компилю ругается на Build MYBASE.h(348): E2451.

Правильная компиляция
#indlude #include using namespace std; int main() < int Fedya = 40;.

Правильная компиляция проекта
Привет:) Я установила на Делфи(7 версия) очень много компонентов. Когда я создаю проект и когда.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL