Serhiy_UA 0 Posted December 15, 2021 · Report post Обнаружил и установил полностью бесплатную версию 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. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ruslan1 0 Posted December 23, 2021 · Report post У меня знакомый с Билдеров переполз на QT. Говорит что все ручками нужно, но обратно не хочет. Я имею в виду, что если уж все равно нужно менять и осваивать новое, так я бы в QT вложился, а не в новый Билдер. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
xvr 0 Posted December 23, 2021 · Report post 3 hours ago, Ruslan1 said: Говорит что все ручками нужно, Не нужно - там QtDesigner есть Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Ruslan1 0 Posted December 23, 2021 · Report post 2 minutes ago, xvr said: Не нужно - там QtDesigner есть Насколько я понял- там нет готовых компонентов, как в Билдере привык. Понятно что что-то там есть другое для замены, но лично я не смотрел, полноценная ли это замена билдеровским компонентам, или все-таки больше ручной работы. Для меня главным аргументом было то, что обратно на Билдер он не собирается, значит понравилось. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
xvr 0 Posted December 23, 2021 · Report post Just now, Ruslan1 said: Насколько я понял- там нет готовых компонентов, как в Билдере привык. Компоненты там есть, хотя и поменьше, чем в Билдере. Новые компоненты добавлять можно, но в дизайнер они автоматом не попадают, увы (хотя некая затычка там есть - если ваш компонент по интерфейсам и инициализации расширяет какой нибудь стандартный, то в дизайнере можно поставить стандартный, но указать, что в реале это будет ваш компонент) Ну и QML в Qt позволяет вообще нарисовать что угодно, не прибегая к С++ вообще (для любителей) 4 minutes ago, Ruslan1 said: полноценная ли это замена билдеровским компонентам, Билдеровских за время его существования наклепали гораздо больше, чем Qt компонентов :) Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jcxz 4 Posted December 23, 2021 · Report post 15.12.2021 в 15:36, Serhiy_UA сказал: 1. Оказалось, ни автоматического, не автоматизированного переноса программ из старой Borland C++ Builder 6 в новую нет, а в ручную это делать достаточно трудно или просто не получается. Так если там такие проблемы, то может ну его? Переползти на VS и забыть как страшный сон? По-крайней мере на VS я спокойно сейчас переношу проект из VS2005 в VS2017 без каких-либо проблем. Из старого в новый - просто конверт работает, а если наоборот - создаём новые файлы проекта и перетаскиваем туда в него файлы. Можно и не создавать новые файлы проекта, а взять от существующего, удалить из них старые файлы исходников, добавить новые - в сумме с десяток кликов мышкой и всё. Правда экзотические компоненты не использую, а только с десяток базовых. Я когда то давно тоже использовал BCB, но мигрировал с него лет 10 назад. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Arlleex 1 Posted December 23, 2021 · Report post 26 минут назад, jcxz сказал: Так если там такие проблемы, то может ну его? Переползти на VS и забыть как страшный сон? Можно, все-таки, Qt рассмотреть. Практически задаром удается получить GUI, работающее как под виндой, так и под линуксой. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Serhiy_UA 0 Posted December 23, 2021 · Report post 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 сам. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Arlleex 1 Posted December 23, 2021 · Report post Какие конкретно проблемы с UART-ом под быдлером? А может, все-таки, дело в... коде? Ну чисто гипотетически. Я под быдлером тоже с COM-портом работаю, но, честно, не совсем понимаю, причем тут IDE. Код работы с COM-портами можно копирнуть в простое консольное приложение и оно соберется - просто я WinAPI пользуюсь, а билдер только для кнопочек/табличек/менюшек. Qt свежак нынче 5. Все там нормально у него с UART-ами... Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jcxz 4 Posted December 23, 2021 · Report post 1 час назад, Serhiy_UA сказал: А в ВСВ у меня был большой задел обслуживающих программ для приборов с микроконтроллерами и с UART (точнее UART-USB) . Мне буквально на днях тоже понадобилось скомпилить программу, написанную на BCB5 ещё лет 12 назад. Скачал бесплатный BCC32C (оказался v7.2). Это который компилит из командной строки только. Запускаю компиляцию проекта - несколько тысяч варнингов и ошибок! Это при том, что под тогдашним BCB5 их не было. Ну понятно - новый стандарт C++ (11 вроде) по дефолту, более строгие проверки, все дела... Вручную перепахал всё - пофиксил. Вроде собралось, работает. Но там программа была написана чисто на WinAPI, без борландовских компонентов. И без файлов проекта - компиляция .bat-ником. Цитата В Embarcadero C++Builder 10.4 меня прельстило его бесплатность и заточенность под Win10. Буду еще пробовать с ним подружиться, хотя мне не нравится в нем то, что уж очень короткие сообщения при ошибках, и это отталкивает. В этом command line BCC32C как раз очень подробные сообщения об ошибках: указывается иерархия вложений (.cpp\.h\...) до ошибки, и сами сообщения - с разноцветной раскраской, хоть и command ine. Для некоторых варнингов/ошибок он даже подсказывает правильный вариант исправления. Типа в: printf("%i", (long)x) подсказывает что нужно исправить на: printf("%li", (long)x). Цитата На сколько среда VS2017 бесплатна, удобна, В VS2017 - не интересовался, контора просто его купила. Хотел поставить старенький VS2008 (чтобы не рожать многомегабайтных монстров из простых исходников), но не продают старые. Пришлось покупать что было. А дома у меня трофейные VS2005, VS2008 и не хочу менять на нового мастодонта. Они меня вполне устраивают. И исходник генерят немного более компактный. Сама среда (VS2017) почти такая же (в пределах интересующих меня функций), только многократно(!) более монстроидальная. Сейчас глянул текущий проект: довольно простой проект - исходники .cpp/.h/.ico == ~2МБ (MFC, полсотни диалогов, в общей сложности 1167 контролов (но все - из базового набора: CCheckBox, CButton, CEdit, CSpin, CCombo, CListCtrl и т.п.)). Так вот - размер директории с проектом со всеми временными файлами, которые VS создаёт при отладке/компиляции для всего двух конфигураций (DEBUG + RELEASE) = 745 МБ!!! Это он наплодил из 2 МБ исходников! В старом VS2008 эта же директория этого же проекта = всего несколько десятков МБ (дома гляну сколько точно). Т.е. - было 2 МБ чистых, нажал "сборка", винт затрещал/затрещал... оп-ля - уж полгига как с куста чего то образовалось! Но в остальном вроде существенных минусов не замечено. Цитата как там с С/С++ и с 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-ов по различным событиям из контекста потока родителя (пользовательского кода)). Так чтобы закрыть от пользовательского кода всю эту многопоточную кухню. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Arlleex 1 Posted December 23, 2021 · Report post 21 минуту назад, jcxz сказал: ...VS создаёт при отладке/компиляции для всего двух конфигураций (DEBUG + RELEASE) = 745 МБ... В Qt ситуация еще хуже в этом плане: там exe-шник формочки с парой кнопок можно получить весом в десятки мегабайт (а то и сотни). Плюс бесплатные предварительные ласки по статической линковке, дабы не держать горы dll в директории самого exe-шника (Qt-воды вообще, почему-то, нормой считают, что для даже мелкой программы нужны горы мусора рядом с exe-шником вместо всего лишь непосредственно одного exe-шника: вот за это для создателей Qt отдельный котел, надеюсь, предусмотрят). Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Xenia 0 Posted December 23, 2021 · Report post 35 минут назад, jcxz сказал: А дома у меня трофейные VS2005, VS2008 и не хочу менять на нового мастодонта. Они меня вполне устраивают. И исходник генерят немного более компактный. Сама среда (VS2017) почти такая же (в пределах интересующих меня функций), только многократно(!) более монстроидальная. Сейчас глянул текущий проект: довольно простой проект - исходники .cpp/.h/.ico == ~2МБ (MFC, полсотни диалогов, в общей сложности 1167 контролов (но все - из базового набора: CCheckBox, CButton, CEdit, CSpin, CCombo, CListCtrl и т.п.)). Так вот - размер директории с проектом со всеми временными файлами, которые VS создаёт при отладке/компиляции для всего двух конфигураций (DEBUG + RELEASE) = 745 МБ!!! Это он наплодил из 2 МБ исходников! В старом VS2008 эта же директория этого же проекта = всего несколько десятков МБ (дома гляну сколько точно). VS2013 - нормальная среда, не монстроидальная. Да и VS2015 еще терпимая. Тогда как VS2005 и VS2008 - старьё голимое :) , 64-разрядные приложения генерировать неспособное. Но вопрос у меня другой - как под VS разные графики и диаграммы рисовать, которые на Bulder 6.0 делались в пол тычка мышкой? Т.е. всё, что под Билдером делает teechart? Или вы всё GUI на MFC пишите? Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Serhiy_UA 0 Posted December 23, 2021 · Report post 59 minutes ago, jcxz said: А дома у меня трофейные VS2005, VS2008 ... ..... давно написал свой класс для работы с COM-портами через WinAPI, его и использую везде. У меня тоже есть трофейный VS2010, я на нем раньше кодировал в C#, теперь попробую и в С++. А как он пойдет для 64-х разрядных и под Win10, наверняка десятка в нем найдет криминал? А с СОМ-портами в ВСВ 6 я работал через WinAPI, его полностью хватало. Но в Embarcadero C++Builder 10.4 чуть-чуть все не так. На функции WinAPI для СОМ порта он ругается, но все как-то очень коротко и не всегда понятно. Надо разбираться.... Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jcxz 4 Posted December 23, 2021 · Report post 3 часа назад, Arlleex сказал: даже мелкой программы нужны горы мусора рядом с exe-шником вместо всего лишь непосредственно одного exe-шника: вот за это для создателей Qt отдельный котел, надеюсь, предусмотрят). Плюсую! Мои программы на ПК, это тоже почти всегда один .exe. Только пару раз были с .dll, когда без этого было не обойтись: например необходимо было внедрение в память чужих процессов. 3 часа назад, Xenia сказал: Тогда как VS2005 и VS2008 - старьё голимое :) , 64-разрядные приложения генерировать неспособное. А Вам реально нужны 64-разрядные приложения? Зачем, если не секрет? 3 часа назад, Xenia сказал: Или вы всё GUI на MFC пишите? Да. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
jcxz 4 Posted December 23, 2021 · Report post 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. Возможно Вам надо в свойствах проекта какие-то галки ему поставить. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...