Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Вт апр 16, 2024 13:39

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 108 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 8  След.
Автор Сообщение
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Вт ноя 09, 2010 12:16 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Спасибо Chess. Сейчас допишу в архив недостающие файлы и скорректированную версию THIS-API-CALL.

Немного о перспективе данного подхода для SPF:
1 - работа с графикой на верхнем уровне, без ловли сообщений Windows
2 - работа и в Win и в Linux
3 - возможность использовать любые объекты C++ в DLL и SO

Хочу написать более продвинутый пример, задействовать QLabel и еще что нибудь этакое.



За это сообщение автора mgw поблагодарили - 2: dynamic-wind, vikt
Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Вт ноя 09, 2010 12:24 
Не в сети
Аватара пользователя

Зарегистрирован: Чт июл 20, 2006 11:31
Сообщения: 2168
Откуда: Екб
Благодарил (а): 0 раз.
Поблагодарили: 41 раз.
mgw писал(а):
Хочу написать более продвинутый пример, задействовать QLabel и еще что нибудь этакое.

Вот это надо сделать - народ потянется. 8)

_________________
С уважением, chess


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Ср ноя 10, 2010 13:34 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Дополнил пример вызовом QLabel. Текстовые объекты Qt поддерживают подмножество HTML. В примере (правда сильно кривом с точки зрения форта) показано создание объектов С++ из библиотеки Qt и работа с ними. Сам пример для SPF win - http://mgw.narod.ru/spf_qt.zip
Изображение
Жаль в SPF нет четкой классификации вызовов внешних функций, а ведь это основа основ.
http://ru.wikipedia.org/wiki/Calling_convention


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Ср ноя 10, 2010 16:51 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
mgw писал(а):
Жаль в SPF нет четкой классификации вызовов внешних функций, а ведь это основа основ.

C чего вы это взяли?

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Ср ноя 10, 2010 23:31 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Может я и не прав (не знаю ассемблер, да и SPF тоже), но хотелось бы видеть четкие однозначные и тестированные функции вызовов внешних процедур типа:
CDECL-CALL
PASCAL-CALL
STDCALL-CALL
WINAPI-CALL
FAST-CALL
SAFE-CALL
THIS-CALL
причем работающих и в Win и в Linux


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Сб ноя 13, 2010 23:58 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
После тестирования механизма работы с объектами Qt из SPF (в Windows) можно сделать следующие выводы:
1 – Объекты С++ во внешних DLL можно использовать в SPF напрямую.
2 – Удалось инициализировать библиотеку Qt непосредственно из SPF. При инициализации из внешней DLL, подключенной к SPF, объекты не работали.
3 – Экземпляры объектов (классов) Qt реально создаются непосредственно в
памяти SPF (надо попробовать в хипе …)
4 – Статические методы объектов вызываются свободно. (интер а как с виртуальными)
5 – Можно задействовать непосредственно с SPF механизм СИГНАЛ -- СЛОТ библиотеки Qt, в части предопределенных сигналов и слотов. (как написать свои слоты и сигналы ...)

Пример для SPF win с использованием объектов QWidget, QLabel, QString , QPushButton и механизма СИГНАЛ-СЛОТ http://mgw.narod.ru/spf_qt.zip

Таким образом, уже сейчас реально перейти на более высокоуровневой графический интерфейс в SPF.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Вт ноя 23, 2010 21:27 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Найти адреса конструкторов непосредственно в разделяемой библиотеке оказалось не просто. В С++ их оказалось вообще нет возможности получить. Есть возможность найти их через таблицу Hash tables непосредственно в библиотеке.

Пока вернулся к более простому варианту. Это DLL (so) с обертками нужных функций.

Краткое описание данного подхода (алгоритм) для подключения графики Qt к SPF в небольшой статье. Прочитать можно здесь http://mgw.narod.ru/algoritms.htm#SPF-QT.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Пт ноя 26, 2010 23:38 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Прототип графической консоли для SPF с использованием Qt. Используется DLL обертка (лучше чем ничего), исходный текст прилагается. Алгоритм (см выше, обработка событий). Работает и в Windows и Linux. Есть непонятные фичи, например не могу внести вызов SDECL-CALL в метод объекта ... Приходится писать экзотически. Для Widows -> http://mgw.narod.ru/spf_qt2.zip
Кто ещё работал с SPF в Linux?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Сб ноя 27, 2010 00:22 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
mgw писал(а):
Кто ещё работал с SPF в Linux?

Уже 7 мес. пересел (полностью) с Win на Ubuntu.
Соотв. первым делом установил SPF.
Попробовал рисовать окошки в GTK - вроде всё нормально!
Сейчас мучаю DS18B20 через libusb.
Чёйто работает. :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Пн ноя 29, 2010 21:24 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Ilya, если есть возможность, кинь мне пример работы SPF с GTK на mgw@yandex.ru


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Пн ноя 29, 2010 22:22 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
mgw писал(а):
Ilya, если есть возможность, кинь мне пример работы SPF с GTK на mgw@yandex.ru

См. почту! Примеры туповатые! :D
Просто проверил возможность юзать GTK.
Док по работе с GTK полно (в т.ч. и русских), но я установил devhelp (присутствует в репозитарии Ubuntu).


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Пн ноя 29, 2010 22:50 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Все примеры работают! Это замечательно!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Пн дек 06, 2010 21:36 
Не в сети

Зарегистрирован: Ср май 03, 2006 11:27
Сообщения: 1394
Откуда: St.Petersburg
Благодарил (а): 2 раз.
Поблагодарили: 11 раз.
Ilya писал(а):
пересел (полностью) с Win на Ubuntu.
Соотв. первым делом установил SPF.


Почему-то http://downloads.sourceforge.net/spf/spf-4.20.tar.gz
у меня не собирается
Код:
mak@mak-desktop:~/spf-4.20/src$ make
make -C posix
make[1]: Entering directory `/home/mak/spf-4.20/src/posix'
make[1]: `config.auto.f' is up to date.
make[1]: Leaving directory `/home/mak/spf-4.20/src/posix'
cd .. && echo "Wait a bit while compiling..." && ./spf4orig src/spf.f
Wait a bit while compiling...

Build options :
     CREATE-XML-HELP : FALSE
             ARCH-P6 : FALSE
     BUILD-OPTIMIZER : TRUE
       USE-OPTIMIZER : TRUE
    OPTIMIZE-BY-SIZE : FALSE
           WIDE-CHAR : FALSE
    UNIX-ENVIRONMENT : TRUE
        TARGET-POSIX : TRUE

Base address of the image 0x8092000 Exception #-2001 at: src/posix/dl.f:29:12:
RTLD_GLOBAL RTLD_LAZY OR CONSTANT DLOPEN-FLAG
          ^ -2001 -? (?? literal)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Пн дек 06, 2010 22:21 
Не в сети

Зарегистрирован: Чт ноя 23, 2006 00:44
Сообщения: 494
Откуда: СПб
Благодарил (а): 19 раз.
Поблагодарили: 8 раз.
Mihail писал(а):
Ilya писал(а):
пересел (полностью) с Win на Ubuntu.
Соотв. первым делом установил SPF.


Почему-то http://downloads.sourceforge.net/spf/spf-4.20.tar.gz
у меня не собирается

Я как начинающий Линуксоид ставил пакет


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения: Re: Forth++
СообщениеДобавлено: Пн дек 06, 2010 22:44 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Цитата:
make[1]: `config.auto.f' is up to date.

говорит, что не произошло обновление этого файла, т.к. нет компиляции config.c
а это в свою очередь возможно из за запуска make без параметров, или из за неправильного времени
модификации (выше системного) файлов с исходниками.

Надо в каталоге spf-4.20/src
sh compile

P.S. Снимки экрана: Прототип консоли SPF с графикой Qt для Linux http://mgw.narod.ru/Linux.jpeg и Windows http://mgw.narod.ru/Win.jpeg. Исходный текст на форте одинаковый для обеих ОС.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 108 ]  На страницу Пред.  1, 2, 3, 4, 5, 6 ... 8  След.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB