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

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 89 ]  На страницу Пред.  1, 2, 3, 4, 5, 6
Автор Сообщение
 Заголовок сообщения: RE
СообщениеДобавлено: Вс июн 17, 2007 21:17 
Не в сети
Аватара пользователя

Зарегистрирован: Вс май 07, 2006 11:38
Сообщения: 279
Откуда: Slavyansk, Ukraine
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Kamikaze писал(а):
А можно какой-нибудь пример вызова quark.dll из SPF?

_________________
Банзай!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июн 17, 2007 22:58 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Для этого нужны спецификации на функции dll, формат вызова, итп.
Вызвать функцию из dll не проблема, знать бы что вызывать и с какими параметрами ;)

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс июн 17, 2007 23:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Ну в начале же темы!...

Код:
Init - начальная инициализация dll
Done - завершение работы (возврат системе выделенных областей памяти)
Evaluate(str : pointer_to_ASCIIZ) - транслировать строку, заданную указателем, возвращает 0 при успехе или номер символа, при трансляции которого произошла ошибка

GetStack  - вернуть адрес начала стека
GetDepth - вернуть глубину стека
GetCode - вернуть начальный адрес словаря
GetData - вернуть начальный адрес данных
GetScreen - вернуть начальный адрес виртуального экрана


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 18, 2007 10:40 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Xищник в IRC писал(а):
копия параметра в eax.

Всё что я читал по этому поводу (например в Wikipedia) не предполагает что первый параметр передаётся в eax. Это есть особенность freepascal
Цитата:
By default, the calling mechanism the compiler uses is register, that is, the compiler will try to pass as much parameters as posible by storing them in a free register. Not all registers are used, some registers have a special meaning, but this depends on the CPU.

Т.е. сейчас quark.dll заточен под формат вызовов register из freepascal - для того чтобы упростить вызов quark.dll из других оболочек следует изменить тип вызова функций. Соответственно стандартными средствами без ассемблерного ковыряния вызвать quark.dll из SPF сейчас невозможно (равно как и из других не-freepascal программ).

Кстати в fasm'е для обьявления процедур могут быть полезными макросы из proc32.inc
Код:
include "proc32.inc"

proc CmpMem src, dest, n
   mov esi, [src]
   mov edi, [dest]
   mov ecx, [n]
   [...]
endp

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 18, 2007 18:51 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Хищник писал(а):
Мне думается, обычные Windows-контролы со свойством OwnerDraw решат проблему...

для этого придется портировать Windows на все существующие типы компов, влючая 16-битные и мобильники

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 18, 2007 18:55 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
ygrek писал(а):
Это есть особенность freepascal

Это формат вызова register. Если параметр на стеке... ну попробую сейчас сделать альтернативную точку входа для Evaluate


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 18, 2007 18:56 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
forth@km.ru писал(а):
для этого придется портировать Windows на все существующие типы компов, влючая 16-битные и мобильники

Это как? :shock: Чтобы в PC под Windows пользоваться виндовыми же контролами, надо Windows куда-то портировать? :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 18, 2007 19:04 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Хищник писал(а):
forth@km.ru писал(а):
для этого придется портировать Windows на все существующие типы компов, влючая 16-битные и мобильники

Это как? :shock: Чтобы в PC под Windows пользоваться виндовыми же контролами, надо Windows куда-то портировать? :)

я таки не понял -- Quark пишется на ворованной дельфе под ворованную винду, или таки на freepascal ?

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 18, 2007 19:06 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
про 16-битные мобильники я сам проглючил -- почему то рещил что Quark это форт-IDE на Форте

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн июн 18, 2007 19:17 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
forth@km.ru писал(а):
я таки не понял -- Quark пишется на ворованной дельфе под ворованную винду, или таки на freepascal ?

А что, варианты вдруг ограничились "ворованным" и "кроссплатформенным"? Кстати, как ворованная Delphi коррелирует с ворованной виндой, тоже неясно. Lazarus (не freepascal!) взят исключительно из-за SynEdit, который туда относительно безглючно встроен. Соответственно, подсветка синтаксиса, номера строк и прочее. На всем этом написана одна из оболочек, которая похожа на IDE. Кварк же написан на fasm, и в виде dll специально для минимизации привязок к shell-ам, окружению, отрисовке, типу окна и пр.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 19, 2007 05:49 
Не в сети

Зарегистрирован: Ср сен 13, 2006 10:06
Сообщения: 636
Откуда: Омск
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.
forth@km.ru писал(а):
я таки не понял -- Quark пишется на ворованной дельфе под ворованную винду, или таки на freepascal ?

Причем тут Дельфи??? Народ давно уже пользуется бесплатным lazarus который в отличие от дельфей имеет потдержку и написан на freepascal.
http://www.lazarus.freepascal.org


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 19, 2007 09:28 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
После вчерашнего обновления кварка - все перестало работать, при попытке запуска пишет:
Цитата:
Строка №1:
Ошибка в позиции 40960340

или
Цитата:
Строка №46119:
Ошибка в позиции 40960340

:?

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 19, 2007 19:50 
Не в сети

Зарегистрирован: Сб май 06, 2006 18:43
Сообщения: 400
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Цитата:
Lazarus is the class libraries for Free Pascal that emulate Delphi. Free Pascal is a GPL'ed compiler that runs on Linux, Win32, OS/2, 68K and more.

на чем из вышеперечисленного есть "виндовые контролы" ? я вот про это и говорил
с другой стороны -- пусть хоть win-only IDE будет, чем вообще никакой
ЗЫ: в в bigFORTH случаем IDE не было в комплекте ? динозавр точно был, а насчет IDE не помню

_________________
http://akps.ssau.ru/forth/


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт июн 19, 2007 19:58 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
В Lazarus. Это RAD, очень похожий на Дельфи, с теми же наборами элементов управления.

forth@km.ru писал(а):
с другой стороны -- пусть хоть win-only IDE будет, чем вообще никакой


А что, форт настолько богат IDE-ями, что можно воротить нос от win-only? :)) Я лучше возьму два специализированных продукта, чем один универсальный настолько, что ни в одной ОС нормально не работает.


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

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


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

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


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

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