Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2010, 12:07   #1
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию Переписать (Builder C++\Delphi) DLL-библиотеки под Unix\Linux

Есть приложение в котором часть DLL написанны на Builder C++, а часть на Delphi.
Используются сетевые библиотеки IdTCP, критические секции WinAPI, программа представляет собой сервис.
Если то что написано на Builder C++ переписать под Qt, а Delphi под Lazarus, то можно будет использовать эти библиотеки под Linux\Unix или какой выход вы посоветуете?
exploys вне форума Ответить с цитированием
Старый 25.11.2010, 11:43   #2
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Цитата:
Сообщение от exploys Посмотреть сообщение
Есть приложение в котором часть DLL написанны на Builder C++, а часть на Delphi.
Используются сетевые библиотеки IdTCP, критические секции WinAPI, программа представляет собой сервис.
Если то что написано на Builder C++ переписать под Qt, а Delphi под Lazarus, то можно будет использовать эти библиотеки под Linux\Unix или какой выход вы посоветуете?
В Qt можно сделать практически всё WinAPI тоже реализуется неплохо - по крайней мере - у меня один первый пример получился без проблем А для Линуха придётся переписывать критические секции на чистом C/C++(WinAPI в Linux нет) или, используя библиотеку Qt. Хотя высокоуровневые функции в Qt реализованы, как я думаю, не с должной Вам производительностью.

IdTCP - что это за библиотеки я не знаю, но они, в первую очередь, должны быть портированы на Linux. Если речь идёт о простом использовании TCP-протокола, то на Qt это перепишется.

Под Lazarus я портировал только простейшие программы, типа калькулятора. Сложнее - возможно будет работать тоже. Ждите ещё советов .

Есть ещё Kylix, вместо Lazarus - но хороших отзывов о нём мало - да и больше не разрабатывается . 3-я версия вышла и всё(~2002г).
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook

Последний раз редактировалось xwicked; 25.11.2010 в 17:14. Причина: Написал не всё
xwicked вне форума Ответить с цитированием
Старый 25.11.2010, 23:37   #3
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию

А Builder C++ и Delphi под Unix/Linux впринципе можно скрестить как-то?
(в частности библиотеки подключить, аналогично как DLL под виндой)
exploys вне форума Ответить с цитированием
Старый 26.11.2010, 08:48   #4
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
По умолчанию

Цитата:
Сообщение от exploys Посмотреть сообщение
А Builder C++ и Delphi под Unix/Linux впринципе можно скрестить как-то?
(в частности библиотеки подключить, аналогично как DLL под виндой)
Конечно можно. Windows(.dll), Linux(.so), MacOS(.dylib) - вся разница будет в расширении подключаемой библиотеки. Есть только один нюанс - я когда пробовал использовать библиотеку, написанную в Delphi/Builder'е, в проекте Qt, то всё было отлично. Попытался использовать наоборот - получилось использовать только функции без графики. То есть если будет форма в библиотеке, то Qt её сможет вызвать, если форма Qt будет в библиотеке, то нужно будет поискать, как её вытащить в Lazarus.

Вообщем главное правильно спланировать переход - и всё должно получиться .
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 29.11.2010, 10:30   #5
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию

Спасибо, интересно. А использовали библиотеку, написанную в Delphi/Builder'е, в проекте Qt под Windows или также и под Unix/Linux и MacOS?
exploys вне форума Ответить с цитированием
Старый 29.11.2010, 12:51   #6
xwicked
Участник клуба
 
Аватар для xwicked
 
Регистрация: 21.03.2010
Сообщений: 1,508
Подмигивание

Цитата:
Сообщение от exploys Посмотреть сообщение
А Builder C++ и Delphi под Unix/Linux впринципе можно скрестить как-то?
(в частности библиотеки подключить, аналогично как DLL под виндой)
Исходя из того, что Builder'a/Delphi в Linux нет, то мной это было воспринято как вопрос про библиотеки написанные под Lazarus и Qt.

Цитата:
Сообщение от exploys Посмотреть сообщение
Спасибо, интересно. А использовали библиотеку, написанную в Delphi/Builder'е, в проекте Qt под Windows или также и под Unix/Linux и MacOS?
Создал библиотеку в Delphi и Builder'e[Windows] - вызвал обеи из Qt.
Портировал библиотеку Delphi в Lazarus[Windows] - вызвал из Qt.
Пересобрал портированную библиотеку в Lazarus[Linux] - вызвал из Qt.
В этих примерах работало всё: простые функции типа +-*/.
В добавок к этому попробовал с формой из библиотеки[Windows / Linux]
Потом создал библиотеку использующую QtCore[Windows] - вызвал в Delphi / Builder'e / Lazarus
Потом пересобрал библиотеку использующую QtCore[Linux] - вызвал в Lazarus.
Использовать в библиотеке QtGui у меня так и не получилось.
QtCore - Основные функции. QtGui - Графика.

Также и будет - написал программу в Delphi, если получилось, то портировал её в Lazarus - потом безо всяких проблем соберётся в Windows, Linux, MacOS.
Также и Qt.

Цитата:
Сообщение от xwicked Посмотреть сообщение
Конечно можно. Windows(.dll), Linux(.so), MacOS(.dylib) - вся разница будет в расширении подключаемой библиотеки. Есть только один нюанс - я когда пробовал использовать библиотеку, написанную в Delphi/Builder'е, в проекте Qt, то всё было отлично. Попытался использовать наоборот - получилось использовать только функции без графики. То есть если будет форма в библиотеке, то Qt её сможет вызвать, если форма Qt будет в библиотеке, то нужно будет поискать, как её вытащить в Lazarus.

Вообщем главное правильно спланировать переход - и всё должно получиться .
Имелось ввиду структура, принципы построения библиотек, способы вызова функций одинаковы, разница только в расширении библиотеки, но пересборка обязательна
Google - лучший помощник программиста.
---
моя лаборатория | мой FaceBook
xwicked вне форума Ответить с цитированием
Старый 01.12.2010, 13:30   #7
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию

Спасибо
exploys вне форума Ответить с цитированием
Старый 09.12.2010, 17:15   #8
exploys
Пользователь
 
Регистрация: 21.05.2009
Сообщений: 21
По умолчанию

Кстати, а на Lazarus под Linux for Power (процессор IBM PowerPC) кто-нибуть компилировал, как там со стыковкой с Qt?
По идее аналогично с Linux x86_64 должно быть.
http://wiki.lazarus.freepascal.org/C...tel_to_PowerPC
exploys вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DLL БИБЛИОТЕКИ Delphi J.Bond Помощь студентам 18 24.05.2010 21:10
Какими Linux/Unix дистрибутивами вы пользуйтесь?... Sota Операционные системы общие вопросы 15 04.06.2008 16:19