FPC pod linux i udostepnianie klas dla programisty C/C++

0

Mam w delphi trochę klas w których mam zaszyte dość skomplikowane algorytmy i metody przetwarzania danych.
Klasy nic nie rysują tylko przetwarzają bloki pamięci.

Jest koncepcja zrobienia programu pod linux-a w ten sposób że algorytmy zostaną skompilowane pod FPC a GUI zostanie stworzone w Qt. Tak sie zastanawiam czy pod linux istnieje jakaś podobna technologia do COM która umożliwiała by w łatwy sposób przekazywanie klas z biblioteki do aplikacji ?

Ewentualnie coś na podobieństwo
Wtyczki (Plugin) w oparciu o interfejsy
ale działajace pod linux

0

Nie wiem czy można łatwo, ale na pewno można trudno: rozszyfrować schemat manglowania nazw i konwencję wywoływania używane przez Free Pascala…

0

Lazarus (czyli nakładka na FPC) obsługuje Qt z tego co się orientuje... Ale:
-Możesz zrobić DLL (czyli SO pod linuxa) - mało problemów
-Możesz załadować plik .o tworzony przez FPC i dodać do projektu C++ (gdzieś w internecie jest napisane jak to zrobić - może tutaj: http://community.freepascal.org:10000/bboards/message?message_id=113576&forum_id=24083 )

0

Z tego co testowałem Qt w lazarus to czasami nawet działa i pod windows i pod linux.
Napisałem czasami bo np. na Meego trochę są problemy i aplikacje się koncza AV a testy na Suse 11.4 wypadły zdecydowanie lepiej

Tylko że działanie Qt w lazarus to jest akurat działanie w drugą stronę , co prawda sposób w jaki to jest robione inspiruje.

W sumie tak jak sobie patrze na technologie COM w Windows to jest to dość swietny pomysł na pisanei aplikacji pomiędzy różnymi technologiami.
Oczywiście mozna to wszystko zrobić w zwykłym DLL ale Com jednak można łatwiej zarzadząć , w linux niestety nie widzę takich możliwości.

0

Zamiast kombinować lepiej to GUI zrobić po prostu w Lazarusie.

0

Sytuacja jest o tyle skomplikowana że to jest linux Embedded (nie ma tam X-ów) , niby sie projekt kompiluje w wersji Qt ale niestety są AV i to w samym Qt,
projekty przykładowe Qt działają OK

1 użytkowników online, w tym zalogowanych: 0, gości: 1