Название: embarcadero c++ builder и Qt Отправлено: __Heaven__ от Июль 30, 2015, 11:30 Привет, друзья!
Появилась необходимость написать небольшую библиотеку на Qt для дальнейшего использования её в проекте c++ builder. Кто-нибудь пробовал такую связку уже? Как реализовать? Пока что вижу, что нужно компилировать Qt с использованием компилятора c++ builder. Я не силён в линковках, но быть может есть способ создать с помощью mingw или msvc dll, которую можно будет подключить. Название: Re: embarcadero c++ builder и Qt Отправлено: kuzulis от Июль 30, 2015, 12:18 Не стоит овчинка выделки (с). (серьезно - бросьте заниматься ерундой ;) )
если и делать "небольшую библиотеку" - то только из самого билдера для билдера. Название: Re: embarcadero c++ builder и Qt Отправлено: xokc от Июль 30, 2015, 13:56 1. Builder-овским компилятором Qt собрать не получится.
2. Единственный вариант - подгружать DLL с Qt в рантайме через LoadLibrary. Там достаточно будет своих нюансов (зависимости этой DLL от собственно Qt и компиляторского рантайма или необходимость использовать статическую сборку, проблемы с отсутствием QApplication и цикла обработки сообщений внутри DLL и, как следствие, неработоспособность сигнал/слотов и т.п.) Всё это решаемо при некотором старании (у меня так Delphi GUI юзает кусок Qt проекта - по историческим причинам получился именно такой "бутерброд"), но... 3. Если речь идет именно о "небольшой библиотеке" - см. предыдущий пост kuzulis, даже добавить к нему нечего :) Название: Re: embarcadero c++ builder и Qt Отправлено: Пантер от Июль 30, 2015, 13:57 Если хочется какую-то функциональность сделать на Кьюте, то лучше сделай это отдельным приложением и общайся с ним через stdin/stdout или по сокету.
Название: Re: embarcadero c++ builder и Qt Отправлено: __Heaven__ от Июль 30, 2015, 14:47 Да дело в том, что нужно сделать библиотеку, которая будет запускать консольное приложение и возвращать его вывод, как char*. Я в c++ builder не сидел, а тот человек, кому нужен функционал - не может реализовать его тамошними инструментами... Что-то не клеится...
Вариант через QLibrary, не совсем понятен. Можно подробнее плз. Название: Re: embarcadero c++ builder и Qt Отправлено: __Heaven__ от Июль 30, 2015, 15:01 проблемы с отсутствием QApplication и цикла обработки сообщений внутри DLL и, как следствие, неработоспособность сигнал/слотов Можно создать свой экземпляр QApplication внутри dll. Проверял, слоты работают.Название: Re: embarcadero c++ builder и Qt Отправлено: xokc от Июль 30, 2015, 16:10 Я в c++ builder не сидел, а тот человек, кому нужен функционал - не может реализовать его тамошними инструментами... Что-то не клеится... Не очень понятно, что именно там может "не клеиться". http://stackoverflow.com/questions/9119999/getting-output-from-a-shell-dos-app-into-a-delphi-app (http://stackoverflow.com/questions/9119999/getting-output-from-a-shell-dos-app-into-a-delphi-app)Вариант через QLibrary, не совсем понятен. Можно подробнее плз. Делается DLL c Qt (не важно с MSVC или MinGW), которая экспортирует нужные функции. Дальше из Builder приложения делается LoadLibrary и экспортированные функции резолвятся через GetProcAddress. Собственно всё.Можно создать свой экземпляр QApplication внутри dll. Проверял, слоты работают. А я и не говорил, что это невозможно. Напротив, утверждал, что при некотором старании всё можно победить. Только стоит ли?Название: Re: embarcadero c++ builder и Qt Отправлено: __Heaven__ от Июль 30, 2015, 17:05 Спасибо, будем пробовать
Название: Re: embarcadero c++ builder и Qt Отправлено: Igors от Июль 31, 2015, 08:08 Можно создать свой экземпляр QApplication внутри dll. Проверял, слоты работают. Была у меня такая байда - кусок Qt кода в "не Qt" приложении. Да, работало, но был очень рад когда в конце-концов от нее избавился. Событийные циклы (у Qt кода свой, у приложения свой) становятся источником постоянных забот |