Вверх ↑
Этот топик читают: Гость
Ответов: 96
Рейтинг: 2
#1: 2017-02-06 23:16:40 ЛС | профиль | цитата
Всем привет!
Есть ли возможность в Hiasm писать скрипты lua?
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 2009
Рейтинг: 129
#2: 2017-02-07 01:01:04 ЛС | профиль | цитата
Собственно язык Lua (Луна) специально разработан, как сопутствующий.
Пакет lua
не правильное выражение. Никакого пакета не надо делать.
Язык просто интегрируется в любой другой.
Поэтому достаточно использовать в своих компонентах, или IC - lua.dll и lua.pas, или вовсе lua.lib без dll. (Ровно так-же и в Си).
Из программы на delphi можно вызывать функции Lua и из Lua можно вызывать функции delphi с передачей параметров и общими переменными.
Конечно можно сделать, что-то типа VBJScript, или читать скрипты через doFile, loadFile, или doString... но это выглядит убого.
Почитай здесь http://forum.hiasm.com/getfile/38019
На самом деле есть гораздо больше возможностей. Красиво получается с функциями обратного вызова, собственно во всех игрушках и графических движках так и делают.
...Можно даже скомпилированные куски кода запихнуть в hiIntegerArray и пользовать их.
В общем это пластилин.
карма: 5

0
Ответов: 96
Рейтинг: 2
#3: 2017-02-07 01:13:58 ЛС | профиль | цитата
flint2, А как, на выходе получается скомпилированный exe файл, можно сразу в .lib скомпилировать?
карма: 0

0
Ответов: 2009
Рейтинг: 129
#4: 2017-02-07 01:36:49 ЛС | профиль | цитата
А как, на выходе получается скомпилированный exe

Не совсем понятно.
1.0 Можно скрипт Lua скомпилировать в exe без hiasm - автономно.
1.1 Можно скрипт Lua скомпилировать в bin.
2. B hiasm можно скрипт держать, как строку, допустим StrList.
3. Можно скомпилированный бинарный код держать в Array и вызывать его оттуда. Код получается адресонезависимый.
4. Можно подгружать скомпилированный кусок из файла bin.
5. Можно подгружать скрипт из txt.
6. Можно читать скрипт из RichEdit.
Один раз прочитанный скрипт компилируется и используется наравне с бинарным кодом delphi.

можно сразу в .lib скомпилировать

По моему такого нет. Но и необходимости в этом нет.
Хотя я делал дополнительную секцию в PE заголовке и помещал "туда" код.
Все функции и переменные были доступны - чем не .lib?

Редактировалось 3 раз(а), последний 2017-02-07 01:54:04
карма: 5

0
Ответов: 96
Рейтинг: 2
#5: 2017-02-07 02:01:30 ЛС | профиль | цитата
flint2, Если не затруднит, можно простенький примерчик?
карма: 0

0
Ответов: 2009
Рейтинг: 129
#6: 2017-02-07 02:07:19 ЛС | профиль | цитата
Давай завтра.
Уже спать хочется.
карма: 5

0
Ответов: 96
Рейтинг: 2
#7: 2017-02-07 02:15:20 ЛС | профиль | цитата
flint2, Хорошо, жду
карма: 0

0
Ответов: 2009
Рейтинг: 129
#8: 2017-02-07 11:28:13 ЛС | профиль | цитата
Вот пример взаимодействия с delphi http://forum.hiasm.com/getfile/38011
Сходу нельзя тоже самое сделать в hiasm, потому что надо lua.pas адаптировать под KOL.
Где-то были у меня наработки на эту тему, надо поискать. Даже линковщик на hiasm должен быть.
Если не найду, то постепенно буду выкладывать библиотеки и всяко разно.
Мне надо поставить чистый hiasm, сейчас у меня SYSUTILS, CLASSES, CONSTS, SYSCONST, TYPINFO и много чего ещё, по этому не факт, что если у меня будет работать, то будет ли работать у кого-то ещё.

По поводу отдельного пакета:
Lua штука кроссплатформенная, в том числе и андроид.
Есть сборки под разные платформы. LuaForWindows_v5.1.4-46 и Scrupp 0.4 полностью упакованы мультимедиа, opengl, openаl, sqlite3...
Только вот зачем это пихать в отдельный пакет и вообще в hiasm? Эти продукты самодостаточны.
Лучше подправить пару pas библиотек под KOL и пользовать это в IC, остальные библиотеки сделаны в lua.

Редактировалось 1 раз(а), последний 2017-02-07 11:31:42
карма: 5

0
Ответов: 2125
Рейтинг: 159
#9: 2017-02-07 11:48:05 ЛС | профиль | цитата
flint2 писал(а):
Никакого пакета не надо делать.
Язык просто интегрируется в любой другой.

По-моему, топикстартеру вовсе не нужно использовать готовый lua-скрипт в HiAsm-программе. Он хочет рисовать на HiAsm-е, а получать в итоге lua-скрипт. Непонятно только, где потом этот скрипт использоваться будет.
карма: 1

0
Ответов: 2009
Рейтинг: 129
#10: 2017-02-07 12:34:50 ЛС | профиль | цитата
Чего-то я не догоняю.
Он хочет рисовать на HiAsm-е, а получать в итоге lua-скрипт.

То есть запихнуть схему в lua-скрипт?
А почему нельзя просто написать скрипт в текстовом редакторе?
Для этого язык и задуман лёгким для изучения. Нужно совсем мало времени, чтобы писать толковые скрипты.
Непонятно только, где потом этот скрипт использоваться будет.

World of Warcraft, S.T.A.L.K.E.R, Minecraft

Редактировалось 1 раз(а), последний 2017-02-07 14:05:29
карма: 5

0
Ответов: 497
Рейтинг: 16
#11: 2017-02-07 16:40:32 ЛС | профиль | цитата
https://sourceforge.net/projects/npp-plugins/files/Gmod%20Lua%20Highlighter/
карма: 1
        ]  
0
Ответов: 2125
Рейтинг: 159
#12: 2017-02-07 17:54:44 ЛС | профиль | цитата
flint2 писал(а):
То есть запихнуть схему в lua-скрипт?
А почему нельзя просто написать скрипт в текстовом редакторе?

Нет, нарисовать схему, а потом из неё сгенерировать lua-скрипт.
Ну не хочется человеку писать скрипт в текстовом редакторе, хочется разрабатывать его в Hiasm-е.
карма: 1

0
Ответов: 2009
Рейтинг: 129
#13: 2017-02-07 22:41:37 ЛС | профиль | цитата
Нет, нарисовать схему, а потом из неё сгенерировать lua-скрипт.

Да, я это и имел ввиду.
Ну это сделать сложно.
Можно конечно реализовать базовые функции в виде кубиков, но думаю чесать левое ухо правой рукой не очень рационально.
карма: 5

0
Ответов: 96
Рейтинг: 2
#14: 2017-02-08 01:27:51 ЛС | профиль | цитата
flint2, Точно, придется писать в блокноте скрипт, а я подумал, что можно в Hiasm визуально в виде кубиков.

Редактировалось 1 раз(а), последний 2017-02-08 01:28:02
карма: 0

0
Ответов: 203
Рейтинг: 2
#15: 2017-02-08 09:04:14 ЛС | профиль | цитата
А вот мне интересна тема интеграции Lua в приложения Hiasm. Можно было использовать Lua как клей для доступа к сторонним библиотекам и другим функциям. В частности можно было попробовать через модуль LuaCOM читать и писать теги OPC DA, да и чтение и отправка почты Gmail.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)