1. 想在delphi里面使用lua,如果不懂安装那么就可以不安装,把下来的lua.pas文件和两个dll文件放在工程目录里,并且在工程里的uses部分加上lua就可以了。
2. 如果想仅仅运行文件中的一个函数,似乎必须先运行整个文件,也就是需要两次调用pcall函数。这可能是运行函数之前需要先给出一个函数列表。
lua_pcall(Lua_script, 0, 0, 0);
lua_getglobal(Lua_script, functionname);
result := lua_pcall(Lua_script, 0, 1, 0);
3. 若函数的某个参数是表,即{1, 2, 3}这样的形式,那么如果想读取表中的第三个值(就是3),必须按照以下顺序使用4个函数:
lua_pushnumber(L, 3); //3指表中第3位
lua_gettable(L, -2); //-2指表在栈中的位置。这个例子里表参数是最后一个入栈,一般的说应是-1,但是由于方才又压入了一个值,所以变成了-2,同时,表在栈中的位置这个值会被出栈,而从表中读取到的值会入栈。
p := lua_tostring(L, -1); //把栈顶的数据读出来。
lua_pop(L, 1); //清栈。
4. lua的delphi译本似乎很多,我用的是http://www.matrix44.de/lua/下载的。
No comments:
Post a Comment