lua与delphi交互(1)-- 定义lua脚本引用的预定义函数
1. delphi相关代码:
引用lua相关单元: uses lua, lualib, lauxlib;
定义全局变量: var L: Plua_State;
lua初始化操作:
L := lua_open; luaopen_string(L); lua_settop(L, 0); lua_register(L, 'print', luaPrint); //建立 lua脚本命令print与 函数 luaPrint之间绑定关系
可直接放到单元的 initialization 段执行;
定义lua脚本引用的预定义函数:
function luaPrint(lua_state: plua_state): Integer; cdecl; var N: Integer; s: string; begin N := lua_gettop(L); //获取传人参数个数 s := lua_tostring(L, 1);//这里 print函数只传人1个字符串参数 ShowMessage(s); Result := 0; end;
执行lua脚本文件:
luaL_loadfile(L, 'my.lua'); //加载lua脚本文件 lua_pcall(L, 0, 0, 0); // 执行lua脚本
释放lua解析器(finalization 段):
finalization if L <> nil then lua_close(L); //关闭
2. my.lua 脚本文件内容:
print("HelloWorld for lua")
3. 执行结果:
弹窗显示"HelloWorld for lua"文字。
4. 分析: 执行lua脚本中的print函数时,执行delphi中定义的关联函数luaPrint(lua_register定义的)。
~做事情贵在坚持~