#include "lua.hpp"
#include <iostream>
using namespace std;
void main()
{
//1.创建Lua状态
lua_State *L = luaL_newstate();
if (L == NULL)
{
return ;
}
//2.加载Lua文件
int bRet = luaL_loadfile(L,"./hello.lua");
if(bRet)
{
cout<<"load file error"<<endl;
return ;
}
//3.运行Lua文件
luaL_openlibs(L);
bRet = lua_pcall(L,0,0,0);
if(bRet)
{
cout<<"pcall error"<<endl;
return ;
}
//4.读取函数
lua_getglobal(L, "__init"); // 获取函数,压入栈中
int iRet= lua_pcall(L, 0, 0, 0); // 调用函数,调用完成以后,会将返回值压入栈中,int lua_pcall (lua_State *L, int nargs, int nresults, int msgh);
if (iRet) // 调用出错
{
const char *pErrorMsg = lua_tostring(L, -1);
cout << pErrorMsg << endl;
lua_close(L);
return ;
}
if (lua_isnumber(L, -1)) //取值输出
{
double fValue = lua_tonumber(L, -1);
cout << "Result is " << fValue << endl;
}
//5.关闭state
lua_close(L);
return ;
}
#include <iostream>
using namespace std;
void main()
{
//1.创建Lua状态
lua_State *L = luaL_newstate();
if (L == NULL)
{
return ;
}
//2.加载Lua文件
int bRet = luaL_loadfile(L,"./hello.lua");
if(bRet)
{
cout<<"load file error"<<endl;
return ;
}
//3.运行Lua文件
luaL_openlibs(L);
bRet = lua_pcall(L,0,0,0);
if(bRet)
{
cout<<"pcall error"<<endl;
return ;
}
//4.读取函数
lua_getglobal(L, "__init"); // 获取函数,压入栈中
int iRet= lua_pcall(L, 0, 0, 0); // 调用函数,调用完成以后,会将返回值压入栈中,int lua_pcall (lua_State *L, int nargs, int nresults, int msgh);
if (iRet) // 调用出错
{
const char *pErrorMsg = lua_tostring(L, -1);
cout << pErrorMsg << endl;
lua_close(L);
return ;
}
if (lua_isnumber(L, -1)) //取值输出
{
double fValue = lua_tonumber(L, -1);
cout << "Result is " << fValue << endl;
}
//5.关闭state
lua_close(L);
return ;
}