Легаси — C++ Builder и Win32 RAD
Материал для сопровождения существующих проектов на C++ Builder / RAD Studio, а не для старта обучения C++. Новым desktop-приложениям в разделе рекомендуется маршрут Qt и CMake. Обзор современных компиляторов — в Компиляторы и toolchain.
Что это за стек
C++ Builder — проприетарная IDE и среда быстрой разработки (RAD) для Windows: визуальный редактор форм, компонентная библиотека VCL (Visual Component Library), встроенный компилятор Borland/Embarcadero, отладчик и менеджер проектов. Исторически продукт развивали Borland, затем CodeGear, сейчас линейку ведёт Embarcadero Technologies в составе RAD Studio (наряду с Delphi).
Типичный цикл разработки близок к Delphi: формы перетаскиваются на палитру, свойства компонентов правятся в инспекторе, код обработчиков событий пишется в IDE. Многие компоненты Delphi можно подключать в C++ Builder без переписывания.
| Характеристика | C++ Builder / RAD Studio | Qt + CMake (раздел энциклопедии) |
|---|---|---|
| Лицензия | проприетарная | Qt — коммерческая или LGPL |
| Платформы | в первую очередь Windows | Windows, Linux, macOS, embedded |
| UI | VCL, Win32-нативные контролы | Qt Widgets / Qt Quick |
| Сборка | .cbproj, MSBuild-подобные сценарии Embarcadero | CMakeLists.txt, кроссплатформенный CI |
| Целевая аудитория сегодня | легаси, внутренние Win32-утилиты | новые кроссплатформенные продукты |
Из чего состоит проект
- Исходники
.cpp/.hс кодом форм и модулей. - Файлы проекта Embarcadero (
.cbproj, группы проектов.groupproj). - VCL — визуальные и невизуальные компоненты (кнопки, таблицы, отчёты, доступ к БД через FireDAC и др.).
- Связка с Delphi — общие пакеты компонентов; команда может смешивать Delphi и C++ в одной RAD Studio.
- Опционально STL и сторонние библиотеки, но стиль кода часто ближе к VCL-типам (
AnsiString,UnicodeString, собственные контейнеры), чем к чистому modern C++.
Компилятор Embarcadero не является GCC, Clang или MSVC: это отдельный toolchain с собственными расширениями и форматами объектных файлов в рамках экосистемы Borland.
История в двух абзацах
Первая волна популярности — 1990–2000-е: быстрый Win32-GUI без ручной разметки HWND. Позже Borland пробовал ответвление C++BuilderX (другая IDE, ближе к Java-стилю) — коммерчески не прижилось; развитие вернули к класической линейке и объединили с Delphi в Borland Developer Studio, затем RAD Studio.
Актуальные релизы Embarcadero выходят регулярно (линейки вроде Alexandria, Athens, Florence). Для энциклопедии важен не номер версии, а правило: версия IDE и runtime-пакетов VCL должны совпадать у всех разработчиков и на сборочной машине.
Когда вы с этим столкнётесь
- внутренние учётные, складские, АСУ ТП-клиенты под Windows;
- наследие после команд, которые строили UI на VCL, а не на Qt или WPF;
- интеграция с COM, legacy BDE/ADO, отчётами FastReport в экосистеме Embarcadero;
- сопровождение кода, где в репозитории лежат
.dfm/ ресурсы форм и нетCMakeLists.txt.
В России и СНГ такие проекты ещё встречаются в промышленности и госсекторе — отсюда смысл короткой заметки в русскоязычной энциклопедии.
Чем опасно смешивать toolchain
Типичная ошибка — «добавим в проект одну .dll, собранную MSVC или MinGW». Объектные файлы Embarcadero, MSVC и GCC не взаимозаменяемы без явного C-интерфейса и согласованной линковки.
Безопасные границы:
extern "C"API для вызова из Builder в стороннюю DLL, собранную другим компилятором (если вообще необходимо);- отдельный процесс или IPC (сокет, pipe, COM) вместо прямой линковки C++-классов между toolchain;
- статическая библиотека только после проверки документации Embarcadero по импорту
.libнужного формата.
Подробнее про ABI в целом — Углублённые темы и Компиляторы и toolchain.
Практика сопровождения
| Действие | Зачем |
|---|---|
| Зафиксировать версию RAD Studio в документации и установщике | одинаковые VCL и runtime-пакеты |
| Хранить исходники в Git, бинарники сборки — в артефактах CI или локально | воспроизводимость |
| Не повышать стандарт C++ «вслепую» | компилятор Embarcadero поддерживает ISO с отставанием от GCC/Clang |
Выделять чистую логику в .cpp без VCL | упрощает тесты и будущую миграцию |
| Планировать миграцию отдельно | перенос на Qt/MSVC — отдельный проект, не «переключить компилятор» |
Миграция на Qt + CMake обычно означает переписывание UI и замену типов VCL на std:: и Qt-классы; оценивайте трудозатраты как новый фронтенд, а не смену флагов.
C++ Builder и обучение C++
Начинающему разработчику не стоит стартовать с C++ Builder: навыки привязаны к проприетарной IDE, уроки из раздела (типы, CMake, идиомы) плохо переносятся один в один.
Имеет смысл открыть Builder, если вы уже знаете C++ и получили на сопровождение конкретный .cbproj.
Полезные ссылки
- Embarcadero — C++ Builder — актуальные версии и лицензии.
- Компиляторы и toolchain C++ — GCC, Clang, MSVC, MinGW.
- Qt — обзор — альтернатива для нового кроссплатформенного GUI.
Краткий итог
C++ Builder — зрелый Windows/RAD-стек с VCL и общей экосистемой с Delphi. Для новых систем в энциклопедии основной путь — современный C++ + CMake + Qt. Builder остаётся важен как легаси: его сопровождают в родной IDE, без смешения с MSVC/GCC в одном модуле и с явным планом, если продукт уходит с VCL.
См. также
Другие статьи этого же раздела в боковом меню (как на странице "О разделе"). C++ как язык системного программирования - ключевые принципы, область применения и инженерные требования к коду. Экосистема приложений на C++ - области применения языка от системного ПО до высоконагруженных вычислений. C++ — это мощный язык программирования общего назначения, который обеспечивает прямой доступ к аппаратным ресурсам компьютера при сохранении высокой производительности. Гайд по установке и настройке с написанием первой программы и её запуском. Директива препроцессора include используется для подключения заголовочных файлов в исходный код. Она сообщает компилятору вставить содержимое указанного файла в текущее место перед началом компиляции. Конфигурация — это набор правил и переменных, которые управляют процессом превращения исходного текста в исполняемый продукт. Примеры простых и полезных консольных приложений с демонстрацией концепций языка. Минимальный кроссплатформенный проект C++17 с CMake — структура, сборка и разбор CMakeLists построчно. Модульные тесты с GTest и Catch2 в CMake-проекте — зачем отдельный target, примеры и запуск ctest. Набор мини-проектов для закрепления C++ — консоль, RAII, CMake, Qt, ranges и опционально Vulkan. Набор советов, правил, принципов и обычаев в разработке на этом языке. Типизация, набор правил определения типа данных значений языка.C++ - язык системного программирования
Экосистема приложений на C++
Что требуется знать перед началом изучения языка программирования C++
Первая программа на C++
Начало работы с C++
Конфигурация и сборка в C++
Простые приложения на C++
CMake — первая программа
Google Test и Catch2 в C++
Практические задания по C++
Рекомендации по разработке на C++
Типы данных в C++