Jump to content

    

Embarcadero C++Builder 10.4. Поделитесь впечатлением.

Recommended Posts

Serhiy_UA

Обнаружил и установил полностью бесплатную версию Embarcadero C++Builder 10.4 Version 27.0.40680.4203, позиционируемую под Windows 10 (работаю в ней).

Первое впечатление было положительно-радостное. Но:

1. Оказалось, ни автоматического, не автоматизированного переноса программ из старой Borland C++ Builder 6 в новую нет, а в ручную это делать достаточно трудно или просто не получается.

2. Работа с UART, что в основном мне необходимо для связи с микроконтроллерами,  тоже затруднена, прежние наработки из Borland C++ Builder 6 для UART просто не проходят, а взамен предлагается купить готовые библиотеки Comport for Windows (TComport) от WinSoft.

3. Также часто бывают остановки с непонятными сообщениями типа: “C:\Users\alex\AppData\Local\Temp\vfs3EC1.tmp". Процесс не может получить доступ к файлу, так как этот файл занят другим процессом”, объяснить которые трудно. так как других программ не запускал.

4. Бывают остановки после компиляции уже на этапе запуска с очень короткими сообщениями, которые просто мало информативны. 

Возможно многолетняя работа в Borland C++ Builder 6 несколько расслабила, но все равно хочется освоить новое. Может у кого-то все проще, поделитесь своими соображениями об этом новом RAD от Embarcadero.

 

Share this post


Link to post
Share on other sites

Ruslan1

У меня знакомый с Билдеров переполз на QT. Говорит что все ручками нужно, но обратно не хочет.

 

Я имею в виду, что если уж все равно нужно менять и осваивать новое, так я бы в QT вложился, а не в новый Билдер.

Share this post


Link to post
Share on other sites

Ruslan1
2 minutes ago, xvr said:

Не нужно - там QtDesigner есть

Насколько я понял- там нет готовых компонентов, как в Билдере привык. Понятно что что-то там есть другое для замены, но лично я не смотрел, полноценная ли это замена билдеровским компонентам, или все-таки больше ручной работы.

Для меня главным аргументом было то, что обратно на Билдер он не собирается, значит понравилось.

Share this post


Link to post
Share on other sites

xvr
Just now, Ruslan1 said:

Насколько я понял- там нет готовых компонентов, как в Билдере привык.

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

 

Ну и QML в Qt позволяет вообще нарисовать что угодно, не прибегая к С++ вообще (для любителей)

 

4 minutes ago, Ruslan1 said:

полноценная ли это замена билдеровским компонентам,

Билдеровских за время его существования наклепали гораздо больше, чем Qt компонентов :)

Share this post


Link to post
Share on other sites

jcxz
15.12.2021 в 15:36, Serhiy_UA сказал:

1. Оказалось, ни автоматического, не автоматизированного переноса программ из старой Borland C++ Builder 6 в новую нет, а в ручную это делать достаточно трудно или просто не получается.

Так если там такие проблемы, то может ну его? Переползти на VS и забыть как страшный сон? По-крайней мере на VS я спокойно сейчас переношу проект из VS2005 в VS2017 без каких-либо проблем. Из старого в новый - просто конверт работает, а если наоборот - создаём новые файлы проекта и перетаскиваем туда в него файлы. Можно и не создавать новые файлы проекта, а взять от существующего, удалить из них старые файлы исходников, добавить новые - в сумме с десяток кликов мышкой и всё.

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

Я когда то давно тоже использовал BCB, но мигрировал с него лет 10 назад.

Share this post


Link to post
Share on other sites

Arlleex
26 минут назад, jcxz сказал:

Так если там такие проблемы, то может ну его? Переползти на VS и забыть как страшный сон?

Можно, все-таки, Qt рассмотреть. Практически задаром удается получить GUI, работающее как под виндой, так и под линуксой.

Share this post


Link to post
Share on other sites

Serhiy_UA
1 hour ago, jcxz said:

Я когда то давно тоже использовал BCB, но мигрировал с него лет 10 назад.

Мне  Borland C++ Builder 6 не удалось установить с DVD-диска на новый компьютер с Win10, так как Win10 не дает работать кодо-генератору (а старый компьютер списали). Диск купил давно на радио-рынке (без лицензии). А в ВСВ у меня был большой задел обслуживающих программ для приборов с микроконтроллерами и с UART (точнее UART-USB) .

В Embarcadero C++Builder 10.4  меня прельстило его бесплатность и заточенность под Win10. Буду еще пробовать с ним подружиться, хотя мне не нравится в нем то, что уж очень короткие сообщения при ошибках, и это отталкивает.   

С VS2010 работал, но под C#, и в принципе можно к нему вернуться, там тоже есть свои наработки для UART. Но уже лет 7 как плотно подружился с Qt3 (под FreeBCD 9), а там С/С++, по этому хотел бы на этом языке работать и дальше. Тем более, что на С/С++ программирую и в STM32Cube IDE, а так же в IAR EW 8.40.

На сколько среда  VS2017  бесплатна, удобна, как там с С/С++ и с UART (а без него никак)?  Можно ли  в VS2017 автоматом (полу-автоматом) перебросить из ВСВ свои наработки или все надо кодировать вручную?

 

43 minutes ago, Arlleex said:

Можно, все-таки, Qt рассмотреть. Практически задаром удается получить GUI, работающее как под виндой, так и под линуксой.

Какой номер у Qt и как там с UART?  Я обычно писал все программы под UART сам. 

Share this post


Link to post
Share on other sites

Arlleex

Какие конкретно проблемы с UART-ом под быдлером? А может, все-таки, дело в... коде? Ну чисто гипотетически. Я под быдлером тоже с COM-портом работаю, но, честно, не совсем понимаю, причем тут IDE. Код работы с COM-портами можно копирнуть в простое консольное приложение и оно соберется - просто я WinAPI пользуюсь, а билдер только для кнопочек/табличек/менюшек.

Qt свежак нынче 5. Все там нормально у него с UART-ами...

Share this post


Link to post
Share on other sites

jcxz
1 час назад, Serhiy_UA сказал:

А в ВСВ у меня был большой задел обслуживающих программ для приборов с микроконтроллерами и с UART (точнее UART-USB) .

Мне буквально на днях тоже понадобилось скомпилить программу, написанную на BCB5 ещё лет 12 назад. Скачал бесплатный BCC32C (оказался v7.2). Это который компилит из командной строки только. Запускаю компиляцию проекта - несколько тысяч варнингов и ошибок!  :shok:  Это при том, что под тогдашним BCB5 их не было. Ну понятно - новый стандарт C++ (11 вроде) по дефолту, более строгие проверки, все дела... Вручную перепахал всё - пофиксил. Вроде собралось, работает. Но там программа была написана чисто на WinAPI, без борландовских компонентов. И без файлов проекта - компиляция .bat-ником.

 

Цитата

В Embarcadero C++Builder 10.4  меня прельстило его бесплатность и заточенность под Win10. Буду еще пробовать с ним подружиться, хотя мне не нравится в нем то, что уж очень короткие сообщения при ошибках, и это отталкивает.

В этом command line BCC32C как раз очень подробные сообщения об ошибках: указывается иерархия вложений (.cpp\.h\...) до ошибки, и сами сообщения - с разноцветной раскраской, хоть и command ine.

Для некоторых варнингов/ошибок он даже подсказывает правильный вариант исправления. :sarcastic:

Типа в: printf("%i", (long)x) подсказывает что нужно исправить на: printf("%li", (long)x).

 

Цитата

На сколько среда  VS2017  бесплатна, удобна,

В VS2017 - не интересовался, контора просто его купила. Хотел поставить старенький VS2008 (чтобы не рожать многомегабайтных монстров из простых исходников), но не продают старые. Пришлось покупать что было. :sad:

А дома у меня трофейные VS2005, VS2008 :blush:  и не хочу менять на нового мастодонта. Они меня вполне устраивают. И исходник генерят немного более компактный. Сама среда (VS2017) почти такая же (в пределах интересующих меня функций), только многократно(!) более монстроидальная. Сейчас глянул текущий проект: довольно простой проект - исходники .cpp/.h/.ico == ~2МБ (MFC, полсотни диалогов, в общей сложности 1167 контролов (но все - из базового набора: CCheckBox, CButton, CEdit, CSpin, CCombo, CListCtrl и т.п.)). Так вот - размер директории с проектом со всеми временными файлами, которые VS создаёт при отладке/компиляции для всего двух конфигураций (DEBUG + RELEASE) = 745 МБ!!! :shok::shok::shok:  Это он наплодил из 2 МБ исходников! В старом VS2008 эта же директория этого же проекта = всего несколько десятков МБ (дома гляну сколько точно).

Т.е. - было 2 МБ чистых, нажал "сборка", винт затрещал/затрещал... оп-ля - уж полгига как с куста чего то образовалось!  :shok:   Но в остальном вроде существенных минусов не замечено.

Цитата

как там с С/С++ и с UART (а без него никак)?  Можно ли  в VS2017 автоматом (полу-автоматом) перебросить из ВСВ свои наработки или все надо кодировать вручную?

Стандарт вроде как можно поставить до ISO C++ 17. Если вы об этом.

Про UART - не понял. Если Вы про какой-то компонент, то я не использую - давно написал свой класс для работы с COM-портами через WinAPI, его и использую везде.

Насчёт переброса из BCB - думаю зависит от исходников, как они написаны и что используют. Я когда-то, когда переезжал с BCB, повозился с переносом своего класса COM-порта. Так как использовал в нём какие-то борландовские национальные плюшки (вроде __property-члены классов и ещё что-то такое). А те вещи, где ничего такого не использовал - перенеслись легко. Всё визуальное (контролы, диалоги) конечно накидал по-новой по образу и подобию, из этого ничего не конвертировал. Ну и обработчики для всего этого визуального, тоже значительно переделал - в VS несколько другой стиль взаимодействия с GUI. MFC в VS - это тонкий слой классов поверх почти голого WinAPI. А у Borland-а там есть своя достаточно толстая прослойка над WinAPI. В этом есть и плюсы и минусы.

 

 

41 минуту назад, Arlleex сказал:

просто я WinAPI пользуюсь, а билдер только для кнопочек/табличек/менюшек.

Аналогично. Только я лет 15 назад написал класс, в который это дело завернул. Который создаёт для пользовательского кода простой API, а внутри - многопоточная работа с WinAPI (3 потока: приём/передача/события; с вызовом callback-ов по различным событиям из контекста потока родителя (пользовательского кода)). Так чтобы закрыть от пользовательского кода всю эту многопоточную кухню.

Share this post


Link to post
Share on other sites

Arlleex
21 минуту назад, jcxz сказал:

...VS создаёт при отладке/компиляции для всего двух конфигураций (DEBUG + RELEASE) = 745 МБ...

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

Share this post


Link to post
Share on other sites

Xenia
35 минут назад, jcxz сказал:

А дома у меня трофейные VS2005, VS2008 :blush:  и не хочу менять на нового мастодонта. Они меня вполне устраивают. И исходник генерят немного более компактный. Сама среда (VS2017) почти такая же (в пределах интересующих меня функций), только многократно(!) более монстроидальная. Сейчас глянул текущий проект: довольно простой проект - исходники .cpp/.h/.ico == ~2МБ (MFC, полсотни диалогов, в общей сложности 1167 контролов (но все - из базового набора: CCheckBox, CButton, CEdit, CSpin, CCombo, CListCtrl и т.п.)). Так вот - размер директории с проектом со всеми временными файлами, которые VS создаёт при отладке/компиляции для всего двух конфигураций (DEBUG + RELEASE) = 745 МБ!!! :shok::shok::shok:  Это он наплодил из 2 МБ исходников! В старом VS2008 эта же директория этого же проекта = всего несколько десятков МБ (дома гляну сколько точно).

VS2013 - нормальная среда, не монстроидальная. Да и VS2015 еще терпимая. Тогда как VS2005 и VS2008 - старьё голимое :) , 64-разрядные приложения генерировать неспособное.

Но вопрос у меня другой - как под VS разные графики и диаграммы рисовать, которые на Bulder 6.0 делались в пол тычка мышкой? Т.е. всё, что под Билдером делает teechart?

Или вы всё GUI на MFC пишите?

Share this post


Link to post
Share on other sites

Serhiy_UA
59 minutes ago, jcxz said:

А дома у меня трофейные VS2005, VS2008 ...

.....   давно написал свой класс для работы с COM-портами через WinAPI, его и использую везде.

У меня тоже есть трофейный VS2010, я на нем раньше кодировал в  C#, теперь попробую и в С++. А как он пойдет для 64-х разрядных и под Win10, наверняка десятка в нем найдет криминал?

А с СОМ-портами в ВСВ 6 я работал через WinAPI, его полностью хватало. Но в Embarcadero C++Builder 10.4 чуть-чуть все не так. На функции WinAPI для СОМ порта он ругается, но все как-то очень коротко и не всегда понятно. Надо разбираться....

Share this post


Link to post
Share on other sites

jcxz
3 часа назад, Arlleex сказал:

даже мелкой программы нужны горы мусора рядом с exe-шником вместо всего лишь непосредственно одного exe-шника: вот за это для создателей Qt отдельный котел, надеюсь, предусмотрят).

Плюсую! :good2: Мои программы на ПК, это тоже почти всегда один .exe. Только пару раз были с .dll, когда без этого было не обойтись: например необходимо было внедрение в память чужих процессов.

3 часа назад, Xenia сказал:

Тогда как VS2005 и VS2008 - старьё голимое :) , 64-разрядные приложения генерировать неспособное.

А Вам реально нужны 64-разрядные приложения? Зачем, если не секрет?

3 часа назад, Xenia сказал:

Или вы всё GUI на MFC пишите?

Да.

Share this post


Link to post
Share on other sites

jcxz
3 часа назад, Serhiy_UA сказал:

А как он пойдет для 64-х разрядных и под Win10, наверняка десятка в нем найдет криминал?

Без понятия. Я не пишу графических и видео редакторов, CAD-ов и т.п. Мои задачи на ПК главным образом - различные утилиты для работы с разрабатываемыми (конфиг, управление и т.п.). Максимум памяти какой мне требовался для моих задач - несколько сотен МБ (приём/отображение осциллограмм от устройства в текущем проекте). А это и в 32-разрядном приложении не проблема.

А Вам - зачем 64 бита?

Цитата

Но в Embarcadero C++Builder 10.4 чуть-чуть все не так. На функции WinAPI для СОМ порта он ругается, но все как-то очень коротко и не всегда понятно. Надо разбираться....

Странно.... Как я писал выше - свежескачанный бесплатный "Embarcadero C++ 7.30" (который и сейчас они предлагают на сайте) нормально компилит полностью WinAPI-ную программу.

Цитата

Make release                                                                         
Embarcadero C++ 7.30 for Win32 Copyright (c) 2012-2017 Embarcadero Technologies, Inc.
ir.cpp:                                                                              
classes.cpp:                                                                         
script.cpp:                                                                          
ini.cpp:                                                                             
Microsoft (R) Windows (R) Resource Compiler Version 6.0.5724.0                       
Copyright (C) Microsoft Corporation.  All rights reserved.                           
                                                                                     
Turbo Incremental Link 6.90 Copyright (c) 1997-2017 Embarcadero Technologies, Inc.   

Возможно Вам надо в свойствах проекта какие-то галки ему поставить.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.