Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
Интересно, что файл исходника qtforth_linux_source.zip на gcc по ссылке на этой страничке http://mgw.narod.ru/sourses.htm недоступен. (он, вероятно, одинаков с тем, что находится по ссылке из первого сообщения этого топика) P.S, spfqt_linux.zip из этого файла у меня выдал исключение при запуске, a qtforth нормально отработал и запустился в графике. Перекрёстная тема в статьях: Подключение графической библиотеки QT к SPF 4.20и Qt-5 + Forth
Интересно, что файл исходника qtforth_linux_source.zip на gcc по ссылке на этой страничке [url=http://mgw.narod.ru/sourses.htm]http://mgw.narod.ru/sourses.htm[/url] недоступен. (он, вероятно, одинаков с тем, что находится по ссылке из первого сообщения этого топика)
P.S, spfqt_linux.zip из этого файла у меня выдал исключение при запуске, a qtforth нормально отработал и запустился в графике.
Перекрёстная тема в статьях: [url=http://fforum.winglion.ru/viewtopic.php?f=34&t=2696]Подключение графической библиотеки QT к SPF 4.20[/url]
и [url=http://fforum.winglion.ru/viewtopic.php?f=2&t=3090]Qt-5 + Forth[/url]
|
|
|
 |
Добавлено: Пн дек 13, 2021 01:43 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
mgw писал(а): Поставил gForth 64 на Linux. Но с подключением DLL проблема. Он пытается вызвать внешний компилятор С (gcc) и при этом валится по ошибке (выкидывает исключение). Сам подход мне не нравится, на любой чих вызывать внешний компилятор. Пытался понять, что ему не хватает (gcc у меня стоит в полном объеме), но там довольно сложно. После SPF, где всё легко и просто, тяжко .... Порадовало, что в gForth есть OOP, правда не смотрел, как и что ... В общем, SPF 64 нужен ... без него тяжело Он с си работает так примерно: Код: c-library socket \c #include <netdb.h> \c #include <unistd.h> c-function gethostname gethostname a n -- n ( c-addr u -- ior ) \c #include <errno.h> \c #define get_errno() errno c-function errno get_errno -- n ( -- value ) \c #include <sys/types.h> \c #include <sys/socket.h> c-function socket socket n n n -- n ( class type proto -- fd ) c-function closesocket close n -- n ( fd -- ior ) c-function connect connect n a n -- n ( fd sock size -- err ) c-function send send n a n n -- n ( socket buffer count flags -- size ) c-function recv recv n a n n -- n ( socket buffer count flags -- size ) c-function recvfrom recvfrom n a n n a a -- n ( socket buffer count flags srcaddr addrlen -- size ) c-function sendto sendto n a n n a n -- n ( socket buffer count flags srcaddr addrlen -- size ) c-function listen() listen n n -- n ( socket backlog -- err ) c-function bind bind n a n -- n ( socket sockaddr socklen --- err ) c-function accept() accept n a a -- n ( socket sockaddr addrlen -- fd ) \c #include <stdio.h> c-function fdopen fdopen n a -- a ( fd fileattr -- file ) \c #include <fcntl.h> c-function fcntl fcntl n n n -- n ( fd n1 n2 -- ior ) \c #include <arpa/inet.h> c-function htonl htonl n -- n ( x -- x' ) c-function htons htons n -- n ( x -- x' ) c-function ntohl ntohl n -- n ( x -- x' ) \c #define fileno1(file) fileno((FILE*)(file)) c-function fileno fileno1 a -- n ( file* -- fd ) \c #include <poll.h> c-function poll poll a n n -- n ( fds nfds timeout -- r ) e? os-type s" linux-gnu" str= [IF] c-function ppoll ppoll a n a a -- n ( fds nfds timeout_ts sigmask -- r ) \c #include <sys/epoll.h> c-function epoll_create epoll_create n -- n ( n -- epfd ) c-function epoll_ctl epoll_ctl n n n a -- n ( epfd op fd event -- r ) c-function epoll_wait epoll_wait n a n n -- n ( epfd events maxevs timeout -- r ) s" uname -r" r/o open-pipe throw dup >r slurp-fid r> close-pipe throw drop 2dup s" 3." string-prefix? >r drop free throw r> [IF] c-function recvmmsg recvmmsg n a n n a -- n ( sockfd hdr vlen flag timeout -- r ) c-function sendmmsg sendmmsg n a n n -- n ( sockfd hdr vlen flag -- r ) [THEN] [THEN] \c #include <netdb.h> c-function getaddrinfo getaddrinfo a a a a -- n ( node service hints res -- r ) c-function freeaddrinfo freeaddrinfo a -- void ( res -- ) c-function gai_strerror gai_strerror n -- a ( errcode -- addr ) c-function setsockopt setsockopt n n n a n -- n ( sockfd level optname optval optlen -- r ) end-c-library Этот код генерирует си-исходник, добавив к нему свои либы, отдает его GCC, который генерирует so-библиотеку. Напоминаю, что gforth64 есть только под линукс, под винду - только 32. При изменении кода внешней библиотеки надо удалить сгенерированную so-библиотеку (в домашнем каталоге пользователя). Репозиторий gforth тут: https://github.com/forthy42/gforth/ - самый свежий. Сборка в дистрибутивах популярных ОС отстает на год-три. СПФ64 под линуксом как бы есть: https://github.com/VoidVolker/spf64/ Это вот делал Михаил. Там еще куча багов, которые надо лечить. Я начал копать эту тему - но сейчас некогда :/
[quote="mgw"]Поставил gForth 64 на Linux. Но с подключением DLL проблема. Он пытается вызвать внешний компилятор С (gcc) и при этом валится по ошибке (выкидывает исключение). Сам подход мне не нравится, на любой чих вызывать внешний компилятор. Пытался понять, что ему не хватает (gcc у меня стоит в полном объеме), но там довольно сложно. После SPF, где всё легко и просто, тяжко .... Порадовало, что в gForth есть OOP, правда не смотрел, как и что ... В общем, SPF 64 нужен ... без него тяжело[/quote] Он с си работает так примерно: [code]c-library socket \c #include <netdb.h> \c #include <unistd.h> c-function gethostname gethostname a n -- n ( c-addr u -- ior ) \c #include <errno.h> \c #define get_errno() errno c-function errno get_errno -- n ( -- value ) \c #include <sys/types.h> \c #include <sys/socket.h> c-function socket socket n n n -- n ( class type proto -- fd ) c-function closesocket close n -- n ( fd -- ior ) c-function connect connect n a n -- n ( fd sock size -- err ) c-function send send n a n n -- n ( socket buffer count flags -- size ) c-function recv recv n a n n -- n ( socket buffer count flags -- size ) c-function recvfrom recvfrom n a n n a a -- n ( socket buffer count flags srcaddr addrlen -- size ) c-function sendto sendto n a n n a n -- n ( socket buffer count flags srcaddr addrlen -- size ) c-function listen() listen n n -- n ( socket backlog -- err ) c-function bind bind n a n -- n ( socket sockaddr socklen --- err ) c-function accept() accept n a a -- n ( socket sockaddr addrlen -- fd ) \c #include <stdio.h> c-function fdopen fdopen n a -- a ( fd fileattr -- file ) \c #include <fcntl.h> c-function fcntl fcntl n n n -- n ( fd n1 n2 -- ior ) \c #include <arpa/inet.h> c-function htonl htonl n -- n ( x -- x' ) c-function htons htons n -- n ( x -- x' ) c-function ntohl ntohl n -- n ( x -- x' ) \c #define fileno1(file) fileno((FILE*)(file)) c-function fileno fileno1 a -- n ( file* -- fd ) \c #include <poll.h> c-function poll poll a n n -- n ( fds nfds timeout -- r ) e? os-type s" linux-gnu" str= [IF] c-function ppoll ppoll a n a a -- n ( fds nfds timeout_ts sigmask -- r ) \c #include <sys/epoll.h> c-function epoll_create epoll_create n -- n ( n -- epfd ) c-function epoll_ctl epoll_ctl n n n a -- n ( epfd op fd event -- r ) c-function epoll_wait epoll_wait n a n n -- n ( epfd events maxevs timeout -- r ) s" uname -r" r/o open-pipe throw dup >r slurp-fid r> close-pipe throw drop 2dup s" 3." string-prefix? >r drop free throw r> [IF] c-function recvmmsg recvmmsg n a n n a -- n ( sockfd hdr vlen flag timeout -- r ) c-function sendmmsg sendmmsg n a n n -- n ( sockfd hdr vlen flag -- r ) [THEN] [THEN] \c #include <netdb.h> c-function getaddrinfo getaddrinfo a a a a -- n ( node service hints res -- r ) c-function freeaddrinfo freeaddrinfo a -- void ( res -- ) c-function gai_strerror gai_strerror n -- a ( errcode -- addr ) c-function setsockopt setsockopt n n n a n -- n ( sockfd level optname optval optlen -- r ) end-c-library[/code] Этот код генерирует си-исходник, добавив к нему свои либы, отдает его GCC, который генерирует so-библиотеку. Напоминаю, что gforth64 есть только под линукс, под винду - только 32. При изменении кода внешней библиотеки надо удалить сгенерированную so-библиотеку (в домашнем каталоге пользователя). Репозиторий gforth тут: https://github.com/forthy42/gforth/ - самый свежий. Сборка в дистрибутивах популярных ОС отстает на год-три. СПФ64 под линуксом как бы есть: https://github.com/VoidVolker/spf64/ Это вот делал Михаил. Там еще куча багов, которые надо лечить. Я начал копать эту тему - но сейчас некогда :/
|
|
|
 |
Добавлено: Чт авг 14, 2014 13:49 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
mgw писал(а): В общем, SPF 64 нужен ... без него тяжело что-то делал Михаил в этом направлении, пробегало тут недавно. На сколько качественно реализовано не знаю, не смотрел
[quote="mgw"]В общем, SPF 64 нужен ... без него тяжело[/quote] что-то делал Михаил в этом направлении, пробегало тут недавно. На сколько качественно реализовано не знаю, не смотрел
|
|
|
 |
Добавлено: Чт авг 14, 2014 12:37 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
Поставил gForth 64 на Linux. Но с подключением DLL проблема. Он пытается вызвать внешний компилятор С (gcc) и при этом валится по ошибке (выкидывает исключение). Сам подход мне не нравится, на любой чих вызывать внешний компилятор. Пытался понять, что ему не хватает (gcc у меня стоит в полном объеме), но там довольно сложно. После SPF, где всё легко и просто, тяжко .... Порадовало, что в gForth есть OOP, правда не смотрел, как и что ... В общем, SPF 64 нужен ... без него тяжело
Поставил gForth 64 на Linux. Но с подключением DLL проблема. Он пытается вызвать внешний компилятор С (gcc) и при этом валится по ошибке (выкидывает исключение). Сам подход мне не нравится, на любой чих вызывать внешний компилятор. Пытался понять, что ему не хватает (gcc у меня стоит в полном объеме), но там довольно сложно. После SPF, где всё легко и просто, тяжко .... Порадовало, что в gForth есть OOP, правда не смотрел, как и что ... В общем, SPF 64 нужен ... без него тяжело
|
|
|
 |
Добавлено: Чт авг 14, 2014 10:54 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
KPG писал(а): Можно, в определённом виде получить дизасемблированный код для составления общего представления не, это совсем не интересно.
[quote="KPG"]Можно, в определённом виде получить дизасемблированный код для составления общего представления[/quote] не, это совсем не интересно.
|
|
|
 |
Добавлено: Ср авг 13, 2014 16:47 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
mOleg писал(а): VoidVolker писал(а): iForth. на сколько знаю, платный? Есть у кого исходники сего форта? Интересно посмотреть внутрь. Можно, в определённом виде получить дизасемблированный код для составления общего представления и далее по мере интереса просматривать полученный ассемблерный код (с вариантом перевода его в Форт, по возможности). Наверное можно и провести обратную сборку из асм лиcтинга полученного средствами SPF4 P.S. Есть некоторые "изыскания" в этом направлении "тела" VFX Форт системы, при наличии терпения читать асм код или обрабатывать листинг утилитами (из дампа кодофайла) для получения необходимой информации. Но задача дизасма плохо формализуема и специфична в путях её решения даже с применением Форт инструментария  Могу проделать "черновой" пласт работы по IForth по заделу из VFX.
[quote="mOleg"][quote="VoidVolker"] iForth.[/quote] на сколько знаю, платный? Есть у кого исходники сего форта? Интересно посмотреть внутрь.[/quote] Можно, в определённом виде получить дизасемблированный код для составления общего представления и далее по мере интереса просматривать полученный ассемблерный код (с вариантом перевода его в Форт, по возможности). Наверное можно и провести обратную сборку из асм лиcтинга полученного средствами SPF4
P.S. Есть некоторые "изыскания" в этом направлении "тела" VFX Форт системы, при наличии терпения читать асм код или обрабатывать листинг утилитами (из дампа кодофайла) для получения необходимой информации. Но задача дизасма плохо формализуема и специфична в путях её решения даже с применением Форт инструментария :) Могу проделать "черновой" пласт работы по IForth по заделу из VFX.
|
|
|
 |
Добавлено: Ср авг 13, 2014 16:35 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
VoidVolker писал(а): iForth. на сколько знаю, платный? Есть у кого исходники сего форта? Интересно посмотреть внутрь.
[quote="VoidVolker"] iForth.[/quote] на сколько знаю, платный? Есть у кого исходники сего форта? Интересно посмотреть внутрь.
|
|
|
 |
Добавлено: Ср авг 13, 2014 14:45 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
gForth, iForth.
gForth, iForth.
|
|
|
 |
Добавлено: Вт авг 12, 2014 18:05 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
Вопрос: Что есть работающего из форта 64 разрядного? Хочу QtE на 64 разрядах протестировать.
Вопрос: Что есть работающего из форта 64 разрядного? Хочу QtE на 64 разрядах протестировать.
|
|
|
 |
Добавлено: Вт авг 12, 2014 11:31 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
Написать ff (поиск файла по имени) меня "сподвигла" одна контора. У них файловый сервер на котором более 600 тыс файлов, причем с чудными именами типа "……..\ «Ёлки в производстве» за 2013 год» ? доходности.xlsx". Поиск в этой "свалке" был ..... жуть. А тут как раз D увлекся, вот и "слепил" им. Индекс обновляется каждой ночью на сервере. Ну а потом перенес её на Linux. Посмотреть как там будет работать. На Linux вообще красиво смотрится А за locate - спасибо! Не знал.
Написать ff (поиск файла по имени) меня "сподвигла" одна контора. У них файловый сервер на котором более 600 тыс файлов, причем с чудными именами типа "……..\ «Ёлки в производстве» за 2013 год» ? доходности.xlsx". Поиск в этой "свалке" был ..... жуть. А тут как раз D увлекся, вот и "слепил" им. Индекс обновляется каждой ночью на сервере. Ну а потом перенес её на Linux. Посмотреть как там будет работать. На Linux вообще красиво смотрится :)
А за locate - спасибо! Не знал.
|
|
|
 |
Добавлено: Ср авг 06, 2014 18:13 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
Offtopic mgw писал(а): ff.exe и ffc.exe (ff.d и ffc.d) - быстрый поиск по файловой системе. ffc.exe - строит индексный файл, ff.exe - показывает и ищет. Мне очень помогает. У меня поиск по полному Linux 2 секунды, по Windows 3 секунды. В Linux для этого есть команда locate /Offtopic
Offtopic [quote="mgw"] ff.exe и ffc.exe (ff.d и ffc.d) - быстрый поиск по файловой системе. ffc.exe - строит индексный файл, ff.exe - показывает и ищет. Мне очень помогает. У меня поиск по полному Linux 2 секунды, по Windows 3 секунды. [/quote] В Linux для этого есть команда locate /Offtopic
|
|
|
 |
Добавлено: Ср авг 06, 2014 17:42 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
Сегодня смог собрать всё в кучу. Два архива: 1- SPF-420-QtE-Windows32.zip ссылка для скачивания: https://yadi.sk/d/gL5FVIi0ZAnLq2 - spf-420-qte-linux32.zip ссылка для скачивания: https://yadi.sk/d/saGeqldGZAnRnОба архива содержат полный каталог spf-420 с моими файлами QtE, консоли, вивера и всяких там мыслей. И там и там стоит самый свежий QtE. Исходники там же. Исходники QtE 32/64. Запуск: spf4 console.f - версия консоли форта, но со старой версией QtE spf4 console2.f - версия консоли форта, с новой версией QtE. Однако сама консоль не доделана  увлекся D view.exe - просмотрщик с подсветкой файлов форта. Исходник view.f ff.exe и ffc.exe (ff.d и ffc.d) - быстрый поиск по файловой системе. ffc.exe - строит индексный файл, ff.exe - показывает и ищет. Мне очень помогает. У меня поиск по полному Linux 2 секунды, по Windows 3 секунды. Построить индексный файл: ffc.exe NameFileIndex.txt Dir1 Dir2 ... Работа с индексным файлом: ff.exe NameFileIndex.txt В версии windows лежит RunTime Qt 4.8.0 Windows 32, так что само Qt ставить не надо. В версии для Linux лежит qte.so. Обычно RunTime Qt в Linux уже присутствует. Если нет, то поставить пакет Qt.i686 Запуск файлов в Linux лучше делать через скрипты *.sh Например: sh console.sh В начале перехода на D я старался переписать QtE.f в QtE.d Обе они работают с QtE.dll. По этому частично они совместимы. Сейчас версия для D намного больше по возможностям версии для форта. Но у меня сейчас нет времени для развития версии для форта, быдлкодорство (как говорит gudleifr) задовило.
Сегодня смог собрать всё в кучу. Два архива: 1- SPF-420-QtE-Windows32.zip ссылка для скачивания: https://yadi.sk/d/gL5FVIi0ZAnLq 2 - spf-420-qte-linux32.zip ссылка для скачивания: https://yadi.sk/d/saGeqldGZAnRn
Оба архива содержат полный каталог spf-420 с моими файлами QtE, консоли, вивера и всяких там мыслей. И там и там стоит самый свежий QtE. Исходники там же. Исходники QtE 32/64. Запуск: spf4 console.f - версия консоли форта, но со старой версией QtE spf4 console2.f - версия консоли форта, с новой версией QtE. Однако сама консоль не доделана :shuffle; увлекся D view.exe - просмотрщик с подсветкой файлов форта. Исходник view.f ff.exe и ffc.exe (ff.d и ffc.d) - быстрый поиск по файловой системе. ffc.exe - строит индексный файл, ff.exe - показывает и ищет. Мне очень помогает. У меня поиск по полному Linux 2 секунды, по Windows 3 секунды. Построить индексный файл: ffc.exe NameFileIndex.txt Dir1 Dir2 ... Работа с индексным файлом: ff.exe NameFileIndex.txt
В версии windows лежит RunTime Qt 4.8.0 Windows 32, так что само Qt ставить не надо. В версии для Linux лежит qte.so. Обычно RunTime Qt в Linux уже присутствует. Если нет, то поставить пакет Qt.i686 Запуск файлов в Linux лучше делать через скрипты *.sh Например: sh console.sh
В начале перехода на D я старался переписать QtE.f в QtE.d Обе они работают с QtE.dll. По этому частично они совместимы. Сейчас версия для D намного больше по возможностям версии для форта. Но у меня сейчас нет времени для развития версии для форта, быдлкодорство (как говорит gudleifr) задовило.
|
|
|
 |
Добавлено: Ср авг 06, 2014 15:23 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
Воистину: Цитата: Мы сами куем свои собственные цепи... Взять высокоуровневую хрень и сделать ее еще более высокоуровневой, чтобы иметь возможность прицепить к совершенно высокоуровневой... Цитата: - Знаете, в чем беда этой страны, Андерсон? Слишком много деревень. Слишком много этих проклятых деревень - сотни, даже тысячи, и все похожи одна на другую. И слишком много в них людей. Если бы здесь не было такого множества удаленных друг от друга деревень, не было бы и войны и не надо нам было бы без конца ходить пешком. Вытащите-ка всех этих людей из деревень, сгоните их в один большой город - и не будет ни войны, ни маршей. А потом соберите ребят, которые служат в нашем Управлении экономической помощи и огребают по пятнадцать тысяч в год плюс деньжата на служебные расходы, и заставьте их изобрести большую машину, чтобы она сажала рис, и поливала рис, и пинала буйволов в зад, а потом собирала рис и посылала его в тот единственный город - пусть люди там делят его и едят. Вот тогда не будет войны и не будет американцев. Наша обязанность - дать им такие машины. /Вьетнам, 1968/ А я-то, дурак, со своим FOBOS...
Воистину: [quote]Мы сами куем свои собственные цепи...[/quote] Взять высокоуровневую хрень и сделать ее еще более высокоуровневой, чтобы иметь возможность прицепить к совершенно высокоуровневой... [quote] - Знаете, в чем беда этой страны, Андерсон? Слишком много деревень. Слишком много этих проклятых деревень - сотни, даже тысячи, и все похожи одна на другую. И слишком много в них людей. Если бы здесь не было такого множества удаленных друг от друга деревень, не было бы и войны и не надо нам было бы без конца ходить пешком. Вытащите-ка всех этих людей из деревень, сгоните их в один большой город - и не будет ни войны, ни маршей. А потом соберите ребят, которые служат в нашем Управлении экономической помощи и огребают по пятнадцать тысяч в год плюс деньжата на служебные расходы, и заставьте их изобрести большую машину, чтобы она сажала рис, и поливала рис, и пинала буйволов в зад, а потом собирала рис и посылала его в тот единственный город - пусть люди там делят его и едят. Вот тогда не будет войны и не будет американцев. Наша обязанность - дать им такие машины. /Вьетнам, 1968/[/quote] А я-то, дурак, со своим FOBOS...
|
|
|
 |
Добавлено: Ср авг 06, 2014 12:55 |
|
|
 |
|
|
Заголовок сообщения: |
Re: QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
Я так понял, для СПФ под вин32 вы не тестировали QtE от 060214 (я так понимаю, последний вариант).
Я так понял, для СПФ под вин32 вы не тестировали QtE от 060214 (я так понимаю, последний вариант).
|
|
|
 |
Добавлено: Вт авг 05, 2014 20:49 |
|
|
 |
|
|
Заголовок сообщения: |
QtE - "обёртка" для Qt. Windows 32/64 и Linux 32/64 |
 |
|
QtE – это библиотека, представляющая надстройку над стандартным Qt. Делал я её сугубо для себя и своих утилитарных нужд, по этому в ней нет системности и всеобъемлемости. Это эксперимент, развившийся до относительно законченного вида. QtE по принципу строения больше всего похожа на Lazarus c Qt. Классы Qt «разбиваются» на конструкторы, деструкторы и методы. Далее на базе этого «плоского (не ООП)» набора функций строится новая иерархия классов на базе того языка программирования, с которым будет использоваться. На данный момент есть версия для SPF 4.20 Win/Linux 32 и D (dlang) для Win/Linux 32/64. Сама QtE состоит из двух частей. Первая – это QtE.dll (so для Linux), которая представляет ту самую «плоскую» модель Qt. Вторая часть, это QtE.f (для SPF 4.20) или QtE.d (для D) дерево классов в терминах того языка, который будет использоваться. QtE.dll – написана на C++ 32/64. В Linux используется gcc, в Windows mingw и соответствующая версия Qt. Я принципиально отказался от Microsoft C++, в целях унификации исходного кода. Как выяснилось, после компиляции QtE.dll (so) для работы с Qt достаточно нескольких библиотек из Qt. Это позволяет не устанавливать Qt на компьютер, а просто скопировать несколько dll, этакий RunTime Qt, и спокойно работать с Форта или D. С 32 разрядной версией ни каких проблем нет. А с 64 разрядной я работал только с D, т.к. нет у меня 64 разрядной версии Форта. По большому счету, я не вижу большой необходимости в 64 разрядной версии, но в качестве эксперимента «раскрутил» и её. На данный момент я реализовал на QtE и D несколько «коммерческих» проектов (ПО на заказ). Всё 32 разрядное. Вот несколько скринов http://qte.ucoz.ru/index/screenshots/0-6Может возникнуть вопрос, почему проекты на D а не на SPF например. Ответ – библиотеки, библиотеки и ещё раз библиотеки . Скорость написания на D раз в 10 выше скорости написания на Форте, именно благодаря стройному окружению. Интересное наблюдение. D активно использует интерпретацию, для предварительного разбора исходного кода. Отсюда такие Фортовские штучки, как CREATE … DOES>, там они называются активные шаблоны, или например предварительные вычисления. Всё, что компилятор может вычислить самостоятельно (типы, выражения, функции и т.д.) на этапе разбора, он вычисляет и активно использует при создании exe. За счет этого просто удивляет интеллектуальность компилятора. Предвижу вопрос, а причем тут вообще Форт? А при том, что D (на мой взгляд конечно) это то к чему надо двигаться Форту. Все исходные уже есть, только собрать всё в кучу проверить и написать документацию. Предвижу первый вопрос, тем более, что мне его уже задавали много раз. Зачем это всё нужно, QtE и всё такое. Ответ. Быстро написать кроссплатформенное приложение, используя мощь Qt и и при этом минимум инструментов, не заморачиваться с огромными IDE, компиляторами и т.д. Исходники QtE можно скачать с http://qte.ucoz.ru/loadГотов ответить на вопросы.
QtE – это библиотека, представляющая надстройку над стандартным Qt. Делал я её сугубо для себя и своих утилитарных нужд, по этому в ней нет системности и всеобъемлемости. Это эксперимент, развившийся до относительно законченного вида. QtE по принципу строения больше всего похожа на Lazarus c Qt. Классы Qt «разбиваются» на конструкторы, деструкторы и методы. Далее на базе этого «плоского (не ООП)» набора функций строится новая иерархия классов на базе того языка программирования, с которым будет использоваться. На данный момент есть версия для SPF 4.20 Win/Linux 32 и D (dlang) для Win/Linux 32/64. Сама QtE состоит из двух частей. Первая – это QtE.dll (so для Linux), которая представляет ту самую «плоскую» модель Qt. Вторая часть, это QtE.f (для SPF 4.20) или QtE.d (для D) дерево классов в терминах того языка, который будет использоваться. QtE.dll – написана на C++ 32/64. В Linux используется gcc, в Windows mingw и соответствующая версия Qt. Я принципиально отказался от Microsoft C++, в целях унификации исходного кода. Как выяснилось, после компиляции QtE.dll (so) для работы с Qt достаточно нескольких библиотек из Qt. Это позволяет не устанавливать Qt на компьютер, а просто скопировать несколько dll, этакий RunTime Qt, и спокойно работать с Форта или D. С 32 разрядной версией ни каких проблем нет. А с 64 разрядной я работал только с D, т.к. нет у меня 64 разрядной версии Форта. По большому счету, я не вижу большой необходимости в 64 разрядной версии, но в качестве эксперимента «раскрутил» и её. На данный момент я реализовал на QtE и D несколько «коммерческих» проектов (ПО на заказ). Всё 32 разрядное. Вот несколько скринов [url]http://qte.ucoz.ru/index/screenshots/0-6[/url] Может возникнуть вопрос, почему проекты на D а не на SPF например. Ответ – библиотеки, библиотеки и ещё раз библиотеки . Скорость написания на D раз в 10 выше скорости написания на Форте, именно благодаря стройному окружению. Интересное наблюдение. D активно использует интерпретацию, для предварительного разбора исходного кода. Отсюда такие Фортовские штучки, как CREATE … DOES>, там они называются активные шаблоны, или например предварительные вычисления. Всё, что компилятор может вычислить самостоятельно (типы, выражения, функции и т.д.) на этапе разбора, он вычисляет и активно использует при создании exe. За счет этого просто удивляет интеллектуальность компилятора. Предвижу вопрос, а причем тут вообще Форт? А при том, что D (на мой взгляд конечно) это то к чему надо двигаться Форту. Все исходные уже есть, только собрать всё в кучу проверить и написать документацию. :)
Предвижу первый вопрос, тем более, что мне его уже задавали много раз. Зачем это всё нужно, QtE и всё такое. Ответ. Быстро написать кроссплатформенное приложение, используя мощь Qt и и при этом минимум инструментов, не заморачиваться с огромными IDE, компиляторами и т.д.
Исходники QtE можно скачать с [url]http://qte.ucoz.ru/load[/url]
Готов ответить на вопросы.
|
|
|
 |
Добавлено: Вт авг 05, 2014 16:34 |
|
|
 |
|