Delphi -> Kylix. как портировать приложение?

Gasparfx

Вопрос: как портировать готовое приложение, уже написанное для Delphi в Kylix? Напямую открывать Delphi проект в Kylixe не удается, выдаёт кучу ругани и не запускается...

tipnote

Ух, я еще не встретил ни одного человека, который не обматерил бы Куликс.
Сочувствую, в общем.

yolki

По-хорошему - надо сразу писать с прицелом на многоплатформенность.
Это подразумевает отказ, например от TRichEdit и подобных штук.
Я делал один сервачок, чтобы он работал на двух системах - нормально.
единственные различия - это CreateProccess vs fork/execvp, TerminateProcess vs kill, WaitForSingleObject vs waitpid
ну и путаница со слешами.
А так - сокетная часть вполне транспортабельна туда-сюда-обратно, благо Indy уже встроен в D7/K3
И да! При написании надо было пользовать не VCL (Graphics, Controls, Forms, Dialogs а CLX (QTypes, QGraphics, QControls, QForms, QDialogs, QStdCtrls и т.п.) - там больше внимания уделяешь portability - сразу видно, чего не стоит пользовать - вырнинги полезут про platform specific

yolki

Вот и встретились.
Я не материл - хорошая задумка борланда. Один минус - вмешательство в не свои библиотеки (Qt)
Ходят слухи, что борланд сворачивает всю деятельность (Kylix и Builder кроме Delphi

tipnote

Хмм, а запуск кода через вайнлиб - это тоже хорошая задумка?

yolki

не понял, что за либ - можешь оригинальное название написать?

tipnote

wine lib
библиотека, позволяющая использовать возможности wine - эмулятора windows.
Т. е. используется старый виндовый код с небольшими модификациями под эмуляцией. Может, последний куликс и не юзает уже, но первые версии использовали. А потому страшно глючили и тормозили.

yolki

Не знаю на счёт старых версий - в третьем уже такого вроде не наблюдается.

Gasparfx

Да это всё понятно, что сразу надо было писать, использовать CLX и всё такое...
Но прога писалась под Дельфи больше года назад, когда я ещё не знал про все эти дела, а писать всё заново слишком геморно...

yolki

попробуй перед именами Forms, Buttons, и т.п. буковки Q приписать - попробуй откомпилить в таком режиме в дельфях.
когда избавишься от ошибок - попробуй скомпилировать в kylix.
TButton в StdCtrls и в QStdCtrls не сильно отличаются.
Те же OnClick, Caption..
Если в проекте не использовалось windows-native контролов со вкладок:
Win32: RichEdit и т.п.
System: MediaPlayer, DDE, OLE и т.п.
то вроде больших проблем не должно быть.

yolki

формочки надо будет (или не надо.. хз) переименовать из *.dfm в *.xfm

Aleksei66

причем - один хрен портировать в киликс или пользовать вайн -
киликс тот же delphi+wine

yolki

не тот же wine - третий kylix wine не пользует (может, и второй не пользовал - я его не видел)
нормальные ELF екзешники, пользует qt ну и ещё парочку библиотек.
(Kylix 3)
$ ldd ./GUIHelloWorld
/lib/libNoVersion.so.1 => /lib/libNoVersion.so.1 (0x40018000)
libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40031000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0x4010f000)
libdl.so.2 => /lib/libdl.so.2 (0x40124000)
libc.so.6 => /lib/i686/libc.so.6 (0x40128000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
если писать консольное приложение - так вообще ничего такого - будет работать почти на любом linux
Kylix 3 is certified on the following Linux distributions:
* Red Hat 7.2
* SuSE 7.3
* Mandrake 8.2
Оставить комментарий
Имя или ник:
Комментарий: