Автор |
Сообщение |
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
Консоль для управления forthD. Этакая заявка на IDE. https://yadi.sk/d/sFSsybY1qs68JВ архиве все необходимое для запуска в Windows 32. Файлов много, т.к. содержит Qt-5 RunTime 32.
Консоль для управления forthD. Этакая заявка на IDE.
https://yadi.sk/d/sFSsybY1qs68J
В архиве все необходимое для запуска в Windows 32. Файлов много, т.к. содержит Qt-5 RunTime 32.
|
|
|
|
Добавлено: Вс апр 10, 2016 09:22 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
kzagradskiy писал(а): Теперь на SP-Forth можно Qt-приложения писать без лишних "танцев с бубнами". Это уже осуществимо на более высоком уровне, причем из SPF-420 для Qt 4.8. http://qte.ucoz.ru/load/qte_ot_080913/1-1-0-4#commentsЕсли взять и переписать ( немного ) модуль qte.f под вызовы Qt-5 .... можно творить чудеса! Ну а если совсем помечтать, то можно взять forthd и переписать его на 64 разряда. Всё для этого есть
[quote="kzagradskiy"]Теперь на SP-Forth можно Qt-приложения писать без лишних "танцев с бубнами".[/quote] Это уже осуществимо на более высоком уровне, причем из SPF-420 для Qt 4.8. http://qte.ucoz.ru/load/qte_ot_080913/1-1-0-4#comments
Если взять и переписать ( немного :D ) модуль qte.f под вызовы Qt-5 .... можно творить чудеса!
Ну а если совсем помечтать, то можно взять forthd и переписать его на 64 разряда. Всё для этого есть :D
|
|
|
|
Добавлено: Вс мар 13, 2016 19:36 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
kzagradskiy писал(а): Всё заработало -- спасибо. Нюанса с поиском dll я не знал. Надо бы это в документацию по SP-Forth добавить. Теперь на SP-Forth можно Qt-приложения писать без лишних "танцев с бубнами". Вообще-то это стандартная логика поиска пути dll в ОС windows - текущий каталог, каталог запуска, системные каталоги.
[quote="kzagradskiy"]Всё заработало -- спасибо. Нюанса с поиском dll я не знал. Надо бы это в документацию по SP-Forth добавить. Теперь на SP-Forth можно Qt-приложения писать без лишних "танцев с бубнами".[/quote] Вообще-то это стандартная логика поиска пути dll в ОС windows - текущий каталог, каталог запуска, системные каталоги.
|
|
|
|
Добавлено: Вс мар 13, 2016 19:30 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
mgw писал(а): Всё работает ...
Кстати, при запуске: c:\spf420\spf c:\rt5\ff.f поиск всех dll начнется в каталоге c:\spf420 а не в каталоге c:\rt5 Всё заработало -- спасибо. Нюанса с поиском dll я не знал. Надо бы это в документацию по SP-Forth добавить. Теперь на SP-Forth можно Qt-приложения писать без лишних "танцев с бубнами". Эту программку можно добавить в репозиторий на Github, как действующий пример работы для SP-Forth. Назвать её более информативно чем "ff.f", например "spf_sample.f". Код: \ Файл: spf_sample.f \ Описание: выводит на экран окно About для Qt \ \ Пошаговый примерный алгоритм: \ 1 - Скачать чистый дистрибутив SPF-420 и распаковал его в папку C:\SPF420 \ 2 - Скачать c github архив с QtE5. Из него содержимое папки rt_Qt5_windows32 скопировать в каталог C:\SPF420 \ 3 - Cкопировать в каталог C:\SPF420 файл QtE5-master\QtE5Widgets32.dll \ 4 - Файл spf_sample.f с примером запустил прямо в каталоге C:\SPF420 \ Кстати, при запуске: \ c:\spf420\spf c:\rt5\spf_sample.f \ поиск всех dll начнется в каталоге c:\spf420 а не в каталоге c:\rt5
1 2 3 4 5 \ Проверка стека на выходе
REQUIRE CAPI: ~af/lib/c/capi.f
3 CAPI: qteQApplication_create1 QtE5Widgets32.dll 1 CAPI: qteQApplication_exec QtE5Widgets32.dll 1 CAPI: qteQApplication_aboutQt QtE5Widgets32.dll 2 CAPI: qteQWidget_create1 QtE5Widgets32.dll 2 CAPI: qteQWidget_setVisible QtE5Widgets32.dll
\ Лень изготавливать argc и argv, просто моделирую их VARIABLE argc 1 argc ! \ Это argc VARIABLE s2 VARIABLE s3 VARIABLE s1 0 s1 ! s1 @ s2 ! s2 @ s3 ! \ s3 - это argv S" app = new QApplication(argc, s3, 1);" TYPE CR 0 s3 argc qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); S" app.aboutQt();" TYPE CR app @ qteQApplication_aboutQt \ app.aboutQt();
0 0 qteQWidget_create1 VARIABLE win1 win1 ! DROP \ win1 = new QWidget(null, 0); 1 win1 @ qteQWidget_setVisible DROP \ win1.setVisible(true); app @ qteQApplication_exec DROP \ app.exec();
S" --1--" 1+ TYPE \ Визуализация загрузки . . . . . \ Проверка стека на выходе
[quote="mgw"]Всё работает ...
Кстати, при запуске: c:\spf420\spf c:\rt5\ff.f поиск всех dll начнется в каталоге c:\spf420 а не в каталоге c:\rt5[/quote] Всё заработало -- спасибо. Нюанса с поиском dll я не знал. Надо бы это в документацию по SP-Forth добавить. Теперь на SP-Forth можно Qt-приложения писать без лишних "танцев с бубнами". Эту программку можно добавить в репозиторий на Github, как действующий пример работы для SP-Forth. Назвать её более информативно чем "ff.f", например "spf_sample.f".
[code]\ Файл: spf_sample.f \ Описание: выводит на экран окно About для Qt \ \ Пошаговый примерный алгоритм: \ 1 - Скачать чистый дистрибутив SPF-420 и распаковал его в папку C:\SPF420 \ 2 - Скачать c github архив с QtE5. Из него содержимое папки rt_Qt5_windows32 скопировать в каталог C:\SPF420 \ 3 - Cкопировать в каталог C:\SPF420 файл QtE5-master\QtE5Widgets32.dll \ 4 - Файл spf_sample.f с примером запустил прямо в каталоге C:\SPF420 \ Кстати, при запуске: \ c:\spf420\spf c:\rt5\spf_sample.f \ поиск всех dll начнется в каталоге c:\spf420 а не в каталоге c:\rt5
1 2 3 4 5 \ Проверка стека на выходе
REQUIRE CAPI: ~af/lib/c/capi.f
3 CAPI: qteQApplication_create1 QtE5Widgets32.dll 1 CAPI: qteQApplication_exec QtE5Widgets32.dll 1 CAPI: qteQApplication_aboutQt QtE5Widgets32.dll 2 CAPI: qteQWidget_create1 QtE5Widgets32.dll 2 CAPI: qteQWidget_setVisible QtE5Widgets32.dll
\ Лень изготавливать argc и argv, просто моделирую их VARIABLE argc 1 argc ! \ Это argc VARIABLE s2 VARIABLE s3 VARIABLE s1 0 s1 ! s1 @ s2 ! s2 @ s3 ! \ s3 - это argv S" app = new QApplication(argc, s3, 1);" TYPE CR 0 s3 argc qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); S" app.aboutQt();" TYPE CR app @ qteQApplication_aboutQt \ app.aboutQt();
0 0 qteQWidget_create1 VARIABLE win1 win1 ! DROP \ win1 = new QWidget(null, 0); 1 win1 @ qteQWidget_setVisible DROP \ win1.setVisible(true); app @ qteQApplication_exec DROP \ app.exec();
S" --1--" 1+ TYPE \ Визуализация загрузки . . . . . \ Проверка стека на выходе [/code]
|
|
|
|
Добавлено: Вс мар 13, 2016 19:01 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
1 - Скачал чистый дистрибутив SPF-420 и распаковал его в папку C:\SPF420 2 - Скачал c github архив с QtE5. Из него содержимое папки rt_Qt5_windows32 скопировал в каталог C:\SPF420 3 - Cкопировал в каталог C:\SPF420 файл QtE5-master\QtE5Widgets32.dll 4 - Создал файл f.f с примером и запустил прямо в каталоге C:\SPF420 Вот как выглядит: Код: Directory of C:\SPF420
13.03.2016 9:17 <DIR> . 13.03.2016 9:04 <DIR> .. 13.03.2016 9:04 <DIR> devel 13.03.2016 9:04 <DIR> docs 13.03.2016 9:17 881 f.f 22.01.2003 7:19 299 help.fhlp 26.02.2008 11:07 39,424 JPF375C.EXE 13.03.2016 9:04 <DIR> lib 21.12.2014 19:07 119,822 libgcc_s_dw2-1.dll 21.12.2014 19:07 1,026,062 libstdc++-6.dll 21.12.2014 19:07 49,152 libwinpthread-1.dll 13.03.2016 9:09 <DIR> platforms 20.02.2016 5:04 5,391,360 Qt5Core.dll 12.10.2015 22:31 5,334,528 Qt5Gui.dll 12.10.2015 22:37 6,541,824 Qt5Widgets.dll 12.03.2016 22:09 37,376 QtE5Widgets.dll 07.03.2016 5:04 33,792 QtE5Widgets32.dll 13.03.2016 9:04 <DIR> samples 21.01.2009 20:38 112,128 spf4.exe 15.11.2006 22:42 328 spf4.ini 13.03.2016 9:04 <DIR> src 13.03.2016 9:04 26,233 uninstall.exe 14 files 18,713,209 bytes 8 directories 36,530,601,984 bytes free
C:\SPF420>type f.f 1 2 3 4 5 \ ╧ЁютхЁър ёЄхър эр т√їюфх
REQUIRE CAPI: ~af/lib/c/capi.f
3 CAPI: qteQApplication_create1 QtE5Widgets32.dll 1 CAPI: qteQApplication_exec QtE5Widgets32.dll 1 CAPI: qteQApplication_aboutQt QtE5Widgets32.dll 2 CAPI: qteQWidget_create1 QtE5Widgets32.dll 2 CAPI: qteQWidget_setVisible QtE5Widgets32.dll
\ ╦хэ№ шчуюЄртыштрЄ№ argc ш argv, яЁюёЄю ьюфхышЁє■ шї VARIABLE argc 1 argc ! \ ▌Єю argc VARIABLE s2 VARIABLE s3 VARIABLE s1 0 s1 ! s1 @ s2 ! s2 @ s3 ! \ s3 - ¤Єю argv 1 s3 argc qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3 , 1); app @ qteQApplication_aboutQt \ app.aboutQt();
0 0 qteQWidget_create1 VARIABLE win1 win1 ! DROP \ win1 = new QWidget(null, 0); 1 win1 @ qteQWidget_setVisible DROP \ win1.setVisible(true); app @ qteQApplication_exec DROP \ app.exec();
. . . . . \ ╧ЁютхЁър ёЄхър эр т√їюфх
Всё работает ... Кстати, при запуске: c:\spf420\spf c:\rt5\ff.f поиск всех dll начнется в каталоге c:\spf420 а не в каталоге c:\rt5
1 - Скачал чистый дистрибутив SPF-420 и распаковал его в папку C:\SPF420 2 - Скачал c github архив с QtE5. Из него содержимое папки rt_Qt5_windows32 скопировал в каталог C:\SPF420 3 - Cкопировал в каталог C:\SPF420 файл QtE5-master\QtE5Widgets32.dll 4 - Создал файл f.f с примером и запустил прямо в каталоге C:\SPF420
Вот как выглядит: [code] Directory of C:\SPF420
13.03.2016 9:17 <DIR> . 13.03.2016 9:04 <DIR> .. 13.03.2016 9:04 <DIR> devel 13.03.2016 9:04 <DIR> docs 13.03.2016 9:17 881 f.f 22.01.2003 7:19 299 help.fhlp 26.02.2008 11:07 39,424 JPF375C.EXE 13.03.2016 9:04 <DIR> lib 21.12.2014 19:07 119,822 libgcc_s_dw2-1.dll 21.12.2014 19:07 1,026,062 libstdc++-6.dll 21.12.2014 19:07 49,152 libwinpthread-1.dll 13.03.2016 9:09 <DIR> platforms 20.02.2016 5:04 5,391,360 Qt5Core.dll 12.10.2015 22:31 5,334,528 Qt5Gui.dll 12.10.2015 22:37 6,541,824 Qt5Widgets.dll 12.03.2016 22:09 37,376 QtE5Widgets.dll 07.03.2016 5:04 33,792 QtE5Widgets32.dll 13.03.2016 9:04 <DIR> samples 21.01.2009 20:38 112,128 spf4.exe 15.11.2006 22:42 328 spf4.ini 13.03.2016 9:04 <DIR> src 13.03.2016 9:04 26,233 uninstall.exe 14 files 18,713,209 bytes 8 directories 36,530,601,984 bytes free
C:\SPF420>type f.f 1 2 3 4 5 \ ╧ЁютхЁър ёЄхър эр т√їюфх
REQUIRE CAPI: ~af/lib/c/capi.f
3 CAPI: qteQApplication_create1 QtE5Widgets32.dll 1 CAPI: qteQApplication_exec QtE5Widgets32.dll 1 CAPI: qteQApplication_aboutQt QtE5Widgets32.dll 2 CAPI: qteQWidget_create1 QtE5Widgets32.dll 2 CAPI: qteQWidget_setVisible QtE5Widgets32.dll
\ ╦хэ№ шчуюЄртыштрЄ№ argc ш argv, яЁюёЄю ьюфхышЁє■ шї VARIABLE argc 1 argc ! \ ▌Єю argc VARIABLE s2 VARIABLE s3 VARIABLE s1 0 s1 ! s1 @ s2 ! s2 @ s3 ! \ s3 - ¤Єю argv 1 s3 argc qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3 , 1); app @ qteQApplication_aboutQt \ app.aboutQt();
0 0 qteQWidget_create1 VARIABLE win1 win1 ! DROP \ win1 = new QWidget(null, 0); 1 win1 @ qteQWidget_setVisible DROP \ win1.setVisible(true); app @ qteQApplication_exec DROP \ app.exec();
. . . . . \ ╧ЁютхЁър ёЄхър эр т√їюфх [/code] Всё работает ...
Кстати, при запуске: c:\spf420\spf c:\rt5\ff.f поиск всех dll начнется в каталоге c:\spf420 а не в каталоге c:\rt5
|
|
|
|
Добавлено: Вс мар 13, 2016 10:27 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
mgw писал(а): В SPF аргументы идут в противоположном порядке ... Таким образом для SPF правильным будет: Код: 1 s3 argc qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); .... 1 win1 @ qteQWidget_setVisible DROP \ win1.setVisible(true);
Может пригодится: http://mgw.narod.ru/doc.htmПоменял последовательность параметров на стеке, теперь qteQApplication_create1 запускается, но не может найти путь к qwindows.dll. Теперь подробнее алгоритм запуска: 1) Скачал rt_Qt5_windows32.zip 2) Распаковал rt_Qt5_windows32.zip в папку rt_Qt5_windows32 3) Скачал QtE5Widgets32.dll (у меня Windows XP 32-bit) 4) Скопировал QtE5Widgets32.dll в папку rt_Qt5_windows32 5) В папке rt_Qt5_windows32 создал файл с исходным кодом от сюда же и запустил. Выдает следующее сообщение: Код: This application failed to start because it could not find or load the Qt platform plugin Windows и окошко с текстом: "Runtime error!" Погуглил в сети: самое адекватное решение нашел здесь [https://habrahabr.ru/post/188816/]. Но для этого нужно добавить биндинг для QCoreApplication::libraryPaths(); и для QCoreApplication::setLibraryPaths(paths); Код: int main(int argc, char *argv[]) { Q_INIT_RESOURCE(resources);
QStringList paths = QCoreApplication::libraryPaths(); paths.append("."); paths.append("imageformats"); paths.append("platforms"); paths.append("sqldrivers"); QCoreApplication::setLibraryPaths(paths);
QApplication a(argc, argv);
a.setQuitOnLastWindowClosed(false);
QDbc::init();
MainWindow w; w.showFullScreen();
a.exec();
QDbc::finalize(); } Это если без установки официального дистрибутива Qt5. Попробую установить дистрибутив. Видимо вся проблема в путях.
[quote="mgw"]В SPF аргументы идут в противоположном порядке ...
Таким образом для SPF правильным будет: [code] 1 s3 argc qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); .... 1 win1 @ qteQWidget_setVisible DROP \ win1.setVisible(true); [/code] Может пригодится: http://mgw.narod.ru/doc.htm[/quote] Поменял последовательность параметров на стеке, теперь qteQApplication_create1 запускается, но не может найти путь к qwindows.dll. Теперь подробнее алгоритм запуска: 1) Скачал rt_Qt5_windows32.zip 2) Распаковал rt_Qt5_windows32.zip в папку rt_Qt5_windows32 3) Скачал QtE5Widgets32.dll (у меня Windows XP 32-bit) 4) Скопировал QtE5Widgets32.dll в папку rt_Qt5_windows32 5) В папке rt_Qt5_windows32 создал файл с исходным кодом от сюда же и запустил.
Выдает следующее сообщение: [code]This application failed to start because it could not find or load the Qt platform plugin Windows[/code] и окошко с текстом: "Runtime error!"
Погуглил в сети: самое адекватное решение нашел здесь [url=https://habrahabr.ru/post/188816/][https://habrahabr.ru/post/188816/][/url]. Но для этого нужно добавить биндинг для QCoreApplication::libraryPaths(); и для QCoreApplication::setLibraryPaths(paths); [code]int main(int argc, char *argv[]) { Q_INIT_RESOURCE(resources);
QStringList paths = QCoreApplication::libraryPaths(); paths.append("."); paths.append("imageformats"); paths.append("platforms"); paths.append("sqldrivers"); QCoreApplication::setLibraryPaths(paths);
QApplication a(argc, argv);
a.setQuitOnLastWindowClosed(false);
QDbc::init();
MainWindow w; w.showFullScreen();
a.exec();
QDbc::finalize(); }[/code] Это если без установки официального дистрибутива Qt5.
Попробую установить дистрибутив. Видимо вся проблема в путях.
|
|
|
|
Добавлено: Вс мар 13, 2016 06:21 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
В SPF аргументы идут в противоположном порядке ... Таким образом для SPF правильным будет: Код: 1 s3 argc qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); .... 1 win1 @ qteQWidget_setVisible DROP \ win1.setVisible(true);
Может пригодится: http://mgw.narod.ru/doc.htm
В SPF аргументы идут в противоположном порядке ...
Таким образом для SPF правильным будет: [code] 1 s3 argc qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); .... 1 win1 @ qteQWidget_setVisible DROP \ win1.setVisible(true); [/code]
Может пригодится: http://mgw.narod.ru/doc.htm
|
|
|
|
Добавлено: Вс мар 13, 2016 00:16 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
mgw писал(а): Код: 1 2 3 4 5 // Проверка стека на выходе
S" stdlib.f" 1+ INCLUDED IF=W Lib" QtE5Widgets32.dll" QtE5Widgets IF=W Library@ QtE5Widgets 3 CDECL-Call" qteQApplication_create1" new_qteQApplication IF=W Library@ QtE5Widgets 1 CDECL-Call" qteQApplication_exec" qteExec IF=W Library@ QtE5Widgets 1 CDECL-Call" qteQApplication_aboutQt" aboutQt IF=W Library@ QtE5Widgets 2 CDECL-Call" qteQWidget_create1" new_QWidget IF=W Library@ QtE5Widgets 2 CDECL-Call" qteQWidget_setVisible" setVisible IF=W LibraryLoad QtE5Widgets
// Лень изготавливать argc и argv, просто моделирую их VAR argc 1 argc ! // Это argc VAR s2 VAR s3 VAR s1 0 s1 ! s1 @ s2 ! s2 @ s3 ! // s3 - это argv argc s3 1 new_qteQApplication VAR app app ! // app = new QApplication(argc, s3, 1); app @ aboutQt // app.aboutQt();
0 0 new_QWidget VAR win1 win1 ! DROP // win1 = new QWidget(null, 0); 1 win1 @ SWAP setVisible DROP // win1.setVisible(true); app @ qteExec DROP // app.exec();
S" --1--" 1+ TYPE // Визуализация загрузки . . . . . // Проверка стека на выходе
Переписал этот пример на SP-Forth'е. Получилось так: Код: 1 2 3 4 5 \ Проверка стека на выходе
REQUIRE CAPI: ~af/lib/c/capi.f
3 CAPI: qteQApplication_create1 QtE5Widgets32.dll 1 CAPI: qteQApplication_exec QtE5Widgets32.dll 1 CAPI: qteQApplication_aboutQt QtE5Widgets32.dll 2 CAPI: qteQWidget_create1 QtE5Widgets32.dll 2 CAPI: qteQWidget_setVisible QtE5Widgets32.dll
\ Лень изготавливать argc и argv, просто моделирую их VARIABLE argc 1 argc ! \ Это argc VARIABLE s2 VARIABLE s3 VARIABLE s1 0 s1 ! s1 @ s2 ! s2 @ s3 ! \ s3 - это argv argc s3 1 qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); app @ qteQApplication_aboutQt \ app.aboutQt();
0 0 qteQWidget_create1 VARIABLE win1 win1 ! DROP \ win1 = new QWidget(null, 0); 1 win1 @ SWAP qteQWidget_setVisible DROP \ win1.setVisible(true); app @ qteQApplication_exec DROP \ app.exec();
S" --1--" 1+ TYPE \ Визуализация загрузки . . . . . \ Проверка стека на выходе
Выдает ошибку: Код: argc s3 1 qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); ^ 0xC0000005L ACCESS_VIOLATION Я и не ожидал, что сразу заработает. Что можете сказать? P.S. (Вопрос скорее к mOleg, чем к mgw)
[quote="mgw"] [code] 1 2 3 4 5 // Проверка стека на выходе
S" stdlib.f" 1+ INCLUDED IF=W Lib" QtE5Widgets32.dll" QtE5Widgets IF=W Library@ QtE5Widgets 3 CDECL-Call" qteQApplication_create1" new_qteQApplication IF=W Library@ QtE5Widgets 1 CDECL-Call" qteQApplication_exec" qteExec IF=W Library@ QtE5Widgets 1 CDECL-Call" qteQApplication_aboutQt" aboutQt IF=W Library@ QtE5Widgets 2 CDECL-Call" qteQWidget_create1" new_QWidget IF=W Library@ QtE5Widgets 2 CDECL-Call" qteQWidget_setVisible" setVisible IF=W LibraryLoad QtE5Widgets
// Лень изготавливать argc и argv, просто моделирую их VAR argc 1 argc ! // Это argc VAR s2 VAR s3 VAR s1 0 s1 ! s1 @ s2 ! s2 @ s3 ! // s3 - это argv argc s3 1 new_qteQApplication VAR app app ! // app = new QApplication(argc, s3, 1); app @ aboutQt // app.aboutQt();
0 0 new_QWidget VAR win1 win1 ! DROP // win1 = new QWidget(null, 0); 1 win1 @ SWAP setVisible DROP // win1.setVisible(true); app @ qteExec DROP // app.exec();
S" --1--" 1+ TYPE // Визуализация загрузки . . . . . // Проверка стека на выходе [/code] [/quote] Переписал этот пример на SP-Forth'е. Получилось так: [code]1 2 3 4 5 \ Проверка стека на выходе
REQUIRE CAPI: ~af/lib/c/capi.f
3 CAPI: qteQApplication_create1 QtE5Widgets32.dll 1 CAPI: qteQApplication_exec QtE5Widgets32.dll 1 CAPI: qteQApplication_aboutQt QtE5Widgets32.dll 2 CAPI: qteQWidget_create1 QtE5Widgets32.dll 2 CAPI: qteQWidget_setVisible QtE5Widgets32.dll
\ Лень изготавливать argc и argv, просто моделирую их VARIABLE argc 1 argc ! \ Это argc VARIABLE s2 VARIABLE s3 VARIABLE s1 0 s1 ! s1 @ s2 ! s2 @ s3 ! \ s3 - это argv argc s3 1 qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); app @ qteQApplication_aboutQt \ app.aboutQt();
0 0 qteQWidget_create1 VARIABLE win1 win1 ! DROP \ win1 = new QWidget(null, 0); 1 win1 @ SWAP qteQWidget_setVisible DROP \ win1.setVisible(true); app @ qteQApplication_exec DROP \ app.exec();
S" --1--" 1+ TYPE \ Визуализация загрузки . . . . . \ Проверка стека на выходе [/code] Выдает ошибку: [code]argc s3 1 qteQApplication_create1 VARIABLE app app ! \ app = new QApplication(argc, s3, 1); ^ 0xC0000005L ACCESS_VIOLATION[/code] Я и не ожидал, что сразу заработает. Что можете сказать? P.S. (Вопрос скорее к [b]mOleg[/b], чем к [b]mgw[/b])
|
|
|
|
Добавлено: Сб мар 12, 2016 22:41 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
kzagradskiy писал(а): mgw писал(а): ... Накидал пример. Используется форт 32 на D ( Спасибо Олегу! ) и RunTime rt_Qt5_windows32.zip с github. ... Что за "форт 32 на D"? Можно ссылку на него? Рекомендую полностью прочитать ветку форума viewtopic.php?f=2&t=3044Готовый вариант forthd (для Windowd 32 и Linux 32) лежит на https://github.com/MGWL/QtE-Qt_for_Dlang_and_ForthP.S. Я тут столкнулся с неприятным явлением. На Linux 32 PAE (это архитектура позволяющая 32 разрядным программам работать за пределами 4G памяти) forthd отказался работать. В чем ошибка, пока не понятно, но судя по всему изменился способ (адрес или его представление) вызова hard слов.
[quote="kzagradskiy"][quote="mgw"]... Накидал пример. Используется форт 32 на D ( Спасибо Олегу! ) и RunTime rt_Qt5_windows32.zip с github. ...[/quote]Что за "форт 32 на D"? Можно ссылку на него?[/quote]
Рекомендую [u]полностью[/u] прочитать ветку форума http://fforum.winglion.ru/viewtopic.php?f=2&t=3044
Готовый вариант forthd (для Windowd 32 и Linux 32) лежит на https://github.com/MGWL/QtE-Qt_for_Dlang_and_Forth
P.S. Я тут столкнулся с неприятным явлением. На Linux 32 PAE (это архитектура позволяющая 32 разрядным программам работать за пределами 4G памяти) forthd отказался работать. :cry: В чем ошибка, пока не понятно, но судя по всему изменился способ (адрес или его представление) вызова hard слов.
|
|
|
|
Добавлено: Сб мар 12, 2016 10:44 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
mgw писал(а): ... Накидал пример. Используется форт 32 на D ( Спасибо Олегу! ) и RunTime rt_Qt5_windows32.zip с github. ... Что за "форт 32 на D"? Можно ссылку на него?
[quote="mgw"]... Накидал пример. Используется форт 32 на D ( Спасибо Олегу! ) и RunTime rt_Qt5_windows32.zip с github. ...[/quote]Что за "форт 32 на D"? Можно ссылку на него?
|
|
|
|
Добавлено: Сб мар 12, 2016 08:19 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
Новая статья на хабре по теме QT (может будет чем то полезна) Костылик для сигнал-слот системы в Qt
Новая статья на хабре по теме QT (может будет чем то полезна) [url=https://habrahabr.ru/post/279007/]Костылик для сигнал-слот системы в Qt[/url]
|
|
|
|
Добавлено: Пт мар 11, 2016 00:36 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
gudleifr писал(а): Что же, проводим еще одного коллегу. Счастливого пути! Раз это к никому не адресовано, то логика подсказывает что это что то сугубо личное и обозначает личные "переживания" P.S. Однако, похвально. Зачем Perl, C#, Питон? Бейсик наше Всё!
[quote="gudleifr"]Что же, проводим еще одного коллегу. Счастливого пути![/quote] Раз это к никому не адресовано, то логика подсказывает что это что то сугубо личное и обозначает личные "переживания" :) P.S. Однако, похвально. Зачем Perl, C#, Питон? Бейсик наше Всё! :hey;
|
|
|
|
Добавлено: Вт мар 08, 2016 23:47 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
Когда-то, в рамкам проекта "визуализации" FORTH, я писал: Цитата: ...мимо котлована и тупичка к далекому городу мечты на горизонте (нет, не так - к верхнему городу, нависающему над берегом на огромных ржавых сетчатых клепанных фермах) протянута ветка скоростного трамвайчика. С надписями "Perl", "C#", "Python"... на вагончиках. Какие-то оборванные люди с вещмешками выбираются из котлована и тайком походят к кассе, шепча: "До города..." Что же, проводим еще одного коллегу. Счастливого пути!
Когда-то, в рамкам проекта "визуализации" FORTH, я писал: [quote]...мимо котлована и тупичка к далекому городу мечты на горизонте (нет, не так - к верхнему городу, нависающему над берегом на огромных ржавых сетчатых клепанных фермах) протянута ветка скоростного трамвайчика. С надписями "Perl", "C#", "Python"... на вагончиках. Какие-то оборванные люди с вещмешками выбираются из котлована и тайком походят к кассе, шепча: "До города..."[/quote]Что же, проводим еще одного коллегу. Счастливого пути!
|
|
|
|
Добавлено: Вт мар 08, 2016 23:38 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
vikt писал(а): Скачал, Затем с сайта narod. который указан на странице, скачал версию для linux С самого гитхаба скачать почему то не удалось а в zip архиве не было. Запустид консоль load hello.zim Крнсоль захлопнулась Ошибка сегментирования Это всё лишнее ... На mgw.narod.ru лежит совсем другой проект... Первое, что за Linux? Без разницы как он называется Ubuntu, Fedora или ещё как то ... Важно: - разрядность 32 или 64. - если 32 то обычный или PAE. - установлена ли на нем Qt5. А именно есть ли в наличии файлы: libQt5Core.so, libQt5Gui.so и т.д. На всех современных дистрибутах Linux уже установлен по умолчанию Qt5 и эти файлы уже имеются. Если их нет (дистрибут старый) то скачать с репо и установить. С github качается всё по кнопке "Download.zip", которая расположена под темно-красной полосой во всю ширину заглавной страницы проекта. Повторяю, что под форт нет готовой реализации. В чем основная идея QtE. В том, что бы "прицепится" к объектам С++ из которых состоит сама Qt. Самое универсальное, это обычные вызовы "C", именно они и использованы в QtE. Хорошо, есть набор готовых вызовов, а что дальше?А дальше их можно использовать с любого (почти, так как нужна поддержка callback) языка программирования. Но лично мне в "лом" ползать по километровому списку функций с их параметрами. Поэтому, этот список вызовов опять собирается в набор взаимосвязанных объектов. Я сейчас это делаю на D (так как все программы пишу на нем), но МОЖНО сделать такой набор объектов (словарей, списков ... кому что нравится) и для форта. В своё время я пытался сделать такую библиотеку для spf-4.20. Вполне реально возродить это направление, но для Qt-5. К чему, я все это говорю. К тому, что сейчас, я в начале пути и могу рассказывать об архитектуре QtE5, так как она отличается от Qt (нет метакомпилятора и т.д.), но я не могу сам писать для форта (все форты разные, да к тому же нет 64 раз нормальной поддержки). Для меня основная задача D, так как на нем я пишу коммерческие проекты. Предлагаю заинтересованным лицам взяться за написание (изучение, тестирование) куска QtE5 для форта. По возможности готов отвечать на вопросы.
[quote="vikt"]Скачал, Затем с сайта narod. который указан на странице, скачал версию для linux С самого гитхаба скачать почему то не удалось а в zip архиве не было. Запустид консоль load hello.zim Крнсоль захлопнулась Ошибка сегментирования[/quote] Это всё лишнее ... На mgw.narod.ru лежит совсем другой проект...
Первое, что за Linux? Без разницы как он называется Ubuntu, Fedora или ещё как то ... Важно: - разрядность 32 или 64. - если 32 то обычный или PAE. - установлена ли на нем Qt5. А именно есть ли в наличии файлы: libQt5Core.so, libQt5Gui.so и т.д. На всех современных дистрибутах Linux уже установлен по умолчанию Qt5 и эти файлы уже имеются. Если их нет (дистрибут старый) то скачать с репо и установить.
С github качается всё по кнопке "Download.zip", которая расположена под темно-красной полосой во всю ширину заглавной страницы проекта.
Повторяю, что под форт нет готовой реализации.
В чем основная идея QtE. В том, что бы "прицепится" к объектам С++ из которых состоит сама Qt. Самое универсальное, это обычные вызовы "C", именно они и использованы в QtE. Хорошо, есть набор готовых вызовов, а что дальше?А дальше их можно использовать с любого (почти, так как нужна поддержка callback) языка программирования. Но лично мне в "лом" ползать по километровому списку функций с их параметрами. Поэтому, этот список вызовов опять собирается в набор взаимосвязанных объектов. Я сейчас это делаю на D (так как все программы пишу на нем), но МОЖНО сделать такой набор объектов (словарей, списков ... кому что нравится) и для форта. В своё время я пытался сделать такую библиотеку для spf-4.20. Вполне реально возродить это направление, но для Qt-5.
К чему, я все это говорю. К тому, что сейчас, я в начале пути и могу рассказывать об архитектуре QtE5, так как она отличается от Qt (нет метакомпилятора и т.д.), но я не могу сам писать для форта (все форты разные, да к тому же нет 64 раз нормальной поддержки). Для меня основная задача D, так как на нем я пишу коммерческие проекты. Предлагаю заинтересованным лицам взяться за написание (изучение, тестирование) куска QtE5 для форта.
По возможности готов отвечать на вопросы.
|
|
|
|
Добавлено: Вт мар 08, 2016 16:23 |
|
|
|
|
|
Заголовок сообщения: |
Re: Qt-5 + Forth |
|
|
Скачал, Затем с сайта narod. который указан на странице, скачал версию для linux С самого гитхаба скачать почему то не удалось а в zip архиве не было. Запустид консоль load hello.zim Крнсоль захлопнулась Ошибка сегментирования
Скачал, Затем с сайта narod. который указан на странице, скачал версию для linux С самого гитхаба скачать почему то не удалось а в zip архиве не было. Запустид консоль load hello.zim Крнсоль захлопнулась Ошибка сегментирования
|
|
|
|
Добавлено: Пн мар 07, 2016 21:32 |
|
|
|
|