lua51
简介
luajit
用于执行 lua 脚本, 已经相关 lua 代码
目前 luajit 存在问题, 请管理 jit 使用, 不然有崩溃风险
组件接口
lua51.gs
函数原型 | 函数作用 |
---|---|
object open() | 新建一个 lua 虚拟机, 并绑定到 gs 操作类上 |
int newstate() | 新建一个 lua 虚拟机 |
lua_state.gs
lua 虚拟机的操作类
函数原型 | 函数作用 |
---|---|
void init(int _L, bool hook_print = false) | 将 lua 虚拟机绑定到操作句柄上 |
int log_print(mixed str) | 用于 hook lua 的 print 函数 |
mixed register_func(function func, string name = nil, int argv = -1) | 将 gs 函数注册到 lua 中 |
void register_ffi(int ffi_ptr, string name = nil) | 将 ffi.map_function 生成的函数指针, 以 name 注册到 luajit 中 |
void register_object(object obj) | 向 lua 注册 gs 对象 |
int wrapper_function(string name, int argv, int LL) | 生成 lua 调用 gs 使用的中间函数 |
mixed dostring(mixed str_or_buf, ...) | 将 string 作为 lua 脚本执行 |
mixed dostring_args(mixed str_or_buf, array args) | 执行 lua 脚本, 脚本参数保存在 args 中 |
mixed dofile(string path) | 加载 lua 文件 |
mixed pcall(string func_name, ...) | 调用 lua 函数 |
mixed pcall_args(string func_name, array args) | 调用 lua 函数 |
void gc() | 调用 lua gc |
样例
// 启动虚拟机
_lua = lua51.open();
// 向 lua 注册 gs 函数
_lua.register_func((: log :));
// 向 lua 注册 gs 对象
object obj = load_static(a);
_lua.register_object(obj);
// 加载 lua 文件
_lua.dofile("/lua/f.lua");
// 调用函数
write(_lua.pcall("PrintX", "中文"));