int main (int argc, char **argv) {
lua_State *L = luaL_newstate();
//加载库
luaL_openlibs(L);
dofile(L,"app.lua");
lua_getglobal(L,"getString");
//把参数放入栈中
lua_pushstring(L,"ZhangSan");
//lua_call(lua_State* L,int nargs,int nreturns)
//1:lua_State* 2:参数数量 3:返回值数量
//lua_call会清空栈,把返回值放入栈中
lua_call(L,1,1);
if(lua_isstring(L,-1)){
printf("%s\n",lua_tostring(L,-1));
}
lua_pop(L,1);
lua_close(L);
return 0;
}
app.lua
version = 2.1
name = "lua"
people={name="ZhangSan",age=20,com="eoe"}
function getPeopleInfo()
return people.name,people.age
end
local name,age = getPeopleInfo();
--print(name,age);
function main()
print("Hello Lua")
end
function getString(name)
return "Hello "..name
end

本文通过一个简单的Lua编程实例展示了如何从C/C++环境中调用Lua脚本,并执行字符串处理功能。该示例包括了Lua环境的初始化、标准库的加载、执行Lua文件、调用Lua函数并传参以及获取返回值的过程。
1600

被折叠的 条评论
为什么被折叠?



