|

本帖最后由 宇智波·佐助 于 2016-7-21 14:41 编辑
- .版本 2
- .支持库 LUA5
- .支持库 spec
- .程序集 窗口程序集_启动窗口
- .程序集变量 lua, LUA5_3
- .程序集变量 句柄1, 整数型
- .程序集变量 句柄2, 整数型
- .子程序 __启动窗口_创建完毕
- lua.创建 ()
- 句柄1 = lua.取出句柄 ()
- lua.打开_全部库 ()
- lua.注册函数 (“print”, &print)
- lua.注册函数 (“取文本”, &取文本)
- lua.注册函数 (“取数字”, &取数字)
- lua.注册函数 (“取逻辑”, &取逻辑)
- lua.执行脚本文本 (编辑框_脚本1.内容)
- 标签_线程1.标题 = 到文本 (句柄1)
- lua.创建 ()
- 句柄2 = lua.取出句柄 ()
- lua.打开_全部库 ()
- lua.注册函数 (“调试输出”, &print)
- lua.执行脚本文本 (编辑框_脚本2.内容)
- 标签_线程2.标题 = 到文本 (句柄2)
- 标签_当前线程.标题 = 到文本 (句柄2)
- .子程序 print
- .局部变量 i, 整数型
- .局部变量 输出文本, 文本型
- ' LUA调用易语言里的函数时,被调用易语言函数,必须要用函数参数 的函数 否则会中断程序
- .计次循环首 (lua.取出栈大小 (), i)
- .判断开始 (lua.是否为空 (i))
- 输出文本 = 输出文本 + “nui”
- .判断 (lua.是否为数值 (i))
- 输出文本 = 输出文本 + 到文本 (lua.取出小数 (i))
- .判断 (lua.是否为文本 (i))
- 输出文本 = 输出文本 + “【” + lua.取出文本 (i) + “】”
- .判断 (lua.是否为逻辑 (i))
- 输出文本 = 输出文本 + 到文本 (lua.取出逻辑 ())
- .默认
- .判断结束
- .如果真 (lua.取出栈大小 () > 1)
- 输出文本 = 输出文本 + “ | ”
- .如果真结束
- .计次循环尾 ()
- 编辑框_调试信息.加入文本 (“(” + 输出文本 + “)” + #换行符)
- .子程序 _按钮1_被单击
- .如果真 (lua.取出句柄 () = 句柄1)
- lua.执行脚本文本 (编辑框_脚本1.内容)
- .如果真 (lua.取出错误信息 () ≠ “”)
- 编辑框_调试信息.加入文本 (lua.取出错误信息 () + #换行符)
- .如果真结束
- .如果真结束
- .如果真 (lua.取出句柄 () ≠ 句柄1)
- 编辑框_调试信息.内容 = “当前线程错误,请切换至当前线程” + #换行符
- .如果真结束
- .子程序 _按钮2_被单击
- lua.返回句柄 (句柄1)
- 标签_当前线程.标题 = 到文本 (句柄1)
- 编辑框_调试信息.内容 = “已经切换至线程1” + #换行符 + “开始运行被调试程序” + #换行符
- .子程序 _按钮4_被单击
- .如果真 (lua.取出句柄 () = 句柄2)
- lua.执行脚本文本 (编辑框_脚本2.内容)
- .如果真 (lua.取出错误信息 () ≠ “”)
- 编辑框_调试信息.加入文本 (lua.取出错误信息 () + #换行符)
- .如果真结束
- .如果真结束
- .如果真 (lua.取出句柄 () ≠ 句柄2)
- 编辑框_调试信息.内容 = “当前线程错误,请切换至当前线程” + #换行符
- .如果真结束
- .子程序 _按钮3_被单击
- lua.返回句柄 (句柄2)
- 标签_当前线程.标题 = 到文本 (句柄2)
- 编辑框_调试信息.内容 = “已经切换至线程2” + #换行符 + “开始运行被调试程序” + #换行符
- .子程序 取文本, 整数型
- ' LUA调用易语言里的函数时,被调用易语言函数,必须要用函数参数 的函数 否则会中断程序
- lua.压入文本 (lua.取出文本 (1) + “1”)
- 返回 (1) ' ///////返回栈参数的个数,如果为0 无参数返回栈中,LUA无法收到数据,压入指令无效。
- .子程序 取数字, 整数型
- .局部变量 L, 整数型
- ' LUA调用易语言里的函数时,被调用易语言函数,必须要用函数参数 的函数 否则会中断程序
- L = lua.取出小数 (1) + 1
- lua.压入数值 (L)
- 返回 (1) ' ///////返回栈参数的个数,如果为0 无参数返回栈中,LUA无法收到数据,压入指令无效。
- .子程序 取逻辑, 整数型
- ' LUA调用易语言里的函数时,被调用易语言函数,必须要用函数参数 的函数 否则会中断程序
- .判断开始 (lua.取出逻辑 (1) = 假)
- lua.压入逻辑 (真)
- .判断 (lua.取出逻辑 (1))
- lua.压入逻辑 (假)
- .默认
- .判断结束
- 返回 (1) ' ///////返回栈参数的个数,如果为0 无参数返回栈中,LUA无法收到数据,压入指令无效。
- .子程序 _按钮5_被单击
- 函数测试 ()
- ' 要调用LUA中函数必须要用一个用来完成,并且要按
- ' 1向栈中压入函数名称
- ' 2向栈中压入函数参数1
- ' 3向栈中压入函数参数n
- ' 4开始调用LUA函数
- ' 5取回函数的返回值
- ' 6返回栈参数的个数,如果为0 无参数返回栈中,LUA无法收到数据。
- ' 这个流程来完成函数调用。
- .子程序 函数测试, 整数型
- ' *****************向栈中压入函数名称********************
- lua.压入全局变量 (编辑框_函数名称.内容)
- ' *****************向栈中压入函数参数1********************
- .判断开始 (组合框_参数1.现行选中项 = 0)
- lua.压入数值 (到小数 (编辑框_参数1.内容))
- .判断 (组合框_参数1.现行选中项 = 1)
- lua.压入文本 (编辑框_参数1.内容)
- .判断 (组合框_参数1.现行选中项 = 2)
- .如果真 (编辑框_参数1.内容 = “真”)
- lua.压入逻辑 (真)
- .如果真结束
- .如果真 (编辑框_参数1.内容 = “假”)
- lua.压入逻辑 (假)
- .如果真结束
- .默认
- .判断结束
- ' *****************向栈中压入函数参数2********************
- .判断开始 (组合框_参数2.现行选中项 = 0)
- lua.压入数值 (到小数 (编辑框_参数2.内容))
- .判断 (组合框_参数2.现行选中项 = 1)
- lua.压入文本 (编辑框_参数2.内容)
- .判断 (组合框_参数2.现行选中项 = 2)
- .如果真 (编辑框_参数2.内容 = “真”)
- lua.压入逻辑 (真)
- .如果真结束
- .如果真 (编辑框_参数2.内容 ≠ “真”)
- lua.压入逻辑 (假)
- .如果真结束
- .默认
- .判断结束
- ' *****************开始调用LUA函数********************
- lua.调用函数 (2, 1, 0)
- ' *****************取回函数的返回值********************
- 调试输出 (lua.取出小数 (lua.取出栈大小 ()), lua.取出栈大小 ())
- 返回 (3) ' ///////返回栈参数的个数,如果为0 无参数返回栈中,LUA无法收到数据,压入指令无效。
- .子程序 _按钮6_被单击
- 调试输出 (lua.取出错误信息 ())
复制代码
本版本为测试版本,本版本基本于LUA5.33的源文件编写。可以多线程运行,
我要提前声明“本支库基于LUA5.33,本版本为测试版本,只供学习使用,调用“执行脚本文本”或者“执行脚本文本”这两个函数次数达到200次,库会锁定,要重新启动才可以"), ”table 还正编写中,编写完成后再分享正式版本。
如有BUG 要来论坛反馈啊!我改正BUG的地方!
|
-
-
lua地址.txt
84 Bytes, 下载次数: 59, 下载积分: 精币 -2 枚
下载地址
-
-
5.3.zip
20.04 KB, 下载次数: 55, 下载积分: 精币 -2 枚
易语言测试例子
|