C++跳转至Lua脚本
来源:互联网 发布:最好赚钱的软件 编辑:程序博客网 时间:2024/06/05 10:10
#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 ;
}
阅读全文
0 0
- C++跳转至Lua脚本
- c调用lua脚本
- Lua脚本:Lua调用C实现方法
- Lua脚本:C调用Lua实现方法
- C语言调用Lua脚本
- C语言调用Lua脚本
- Lua 脚本调用 C 函数
- Lua 脚本调用 C 函数
- Lua脚本调用C函数小结
- C调用lua脚本的效率测试
- C调用lua脚本的效率测试
- C/C++调用lua脚本函数
- C调用lua脚本的效率测试
- C/C++调用lua脚本函数
- 详解C调用lua脚本效率测试
- C调用lua脚本效率测试
- C/C++中使用Lua脚本
- C/C++调用lua脚本函数
- Java Script的基础数据类型和表达式
- LaTeX的图片插入及排版
- 排序算法(下)
- 使用Spring MVC统一异常处理实战
- bzoj 2301: [HAOI2011]Problem b(莫比乌斯反演)
- C++跳转至Lua脚本
- ARM之LCD操作
- httpclient 请求乱码
- windows安装maven,eclipse配置maven,运行spark程序总结
- 使用Wicked 管理OpenSUSE network
- docker 常用命令
- keil报错 L6002u 什么原因 在其他地方看了不少解决方案 但是都没有解决
- 【SpringCloud】(一):SpringCloud入门程序
- Java基础学习总结(110)——Java主要技术点总结