
①C++往lua堆栈里面写东西
②lua获取这些堆栈的数据后,拿到lua全局表进行操作
③lua在全局表拿到结果后,再把结果返回到lua堆栈中
④C++再去读取lua堆栈信息

(1)传递参数类型
数字、字符串、bool、用户类型
(2)获取返回值类型
数字、字符串、bool、结构体对象
#include <lualib.h>
#include <string.h>
//定义函数
//lua_State状态,我们通过状态来操作堆栈、调试、内存监控
int CTest(lua_State* L)
{
printf("int CTest\n");
return 0;//返回结果个数,
//返回0表示没有返回值,返回一表示一个参数
}
int main(int argc,char* argv[])
{
lua_State* lua = lua_open();
luaopen_base(lua);
luaopen_string(lua);
luaopen_table(lua);
//注册函数,告诉lua我写了这个函数
lua_register(lua,"CTest",CTest);//CTest是名称,可以和函数名是不一致的,可以自己定义的
if(luaL_loadfile(lua,"main.lua"))
{
const char* error = lua_tostring(lua,-1);
printf("lua load error:%s\n",error);
}
}
CTest()
