C++ 调用Lua简单例子
2012-08-19 00:11
441 查看
首先配置环境,百度文库里这个讲的很详细
http://wenku.baidu.com/view/7912da3667ec102de2bd8957.html
环境配置好之后,我也写了个简单的调用
main.cpp
add.lua
当编译之后没有问题,执行时出了点问题,如下:
PANIC: unprotected error in call to Lua API (attempt to call a nil value)
结果google了一下,说是luaL_loadfile换成luaL_dofile,当时我用的就是luaL_dofile,这是可能的一个原因,但不是我的。
最终找到原因,add.lua放的位置不对,我将它放在vs的和.cpp文件相同的目录下不行,之后放到里面的工程目录即可。
author:good90
http://wenku.baidu.com/view/7912da3667ec102de2bd8957.html
环境配置好之后,我也写了个简单的调用
main.cpp
#include <stdio.h> extern "C"{ #include "lua.h" #include "lualib.h" #include "lauxlib.h" }; lua_State *L; int luaAdd(int x, int y) { int sum; lua_getglobal(L, "add"); lua_pushnumber(L, x); lua_pushnumber(L, y); lua_call(L, 2, 1); sum = (int)lua_tonumber(L, -1); lua_pop(L, 1); return sum; } int main(int argc, char *argv[]) { int sum = 0; L = lua_open(); luaopen_base(L); luaL_openlibs(L); luaL_loadfile(L, "add.lua"); lua_pcall(L, 0, LUA_MULTRET, 0); sum = luaAdd(10, 15); printf("The sum is %d\n", sum); lua_close(L); return 0; }
add.lua
--简单的例子,只做整数加法 function add(x, y) return x + y end
当编译之后没有问题,执行时出了点问题,如下:
PANIC: unprotected error in call to Lua API (attempt to call a nil value)
结果google了一下,说是luaL_loadfile换成luaL_dofile,当时我用的就是luaL_dofile,这是可能的一个原因,但不是我的。
最终找到原因,add.lua放的位置不对,我将它放在vs的和.cpp文件相同的目录下不行,之后放到里面的工程目录即可。
author:good90
相关文章推荐
- 简单C++调用lua函数及C++和lua相互函数调用小例子
- C++调用lua简单的例子
- 简单C++调用lua函数及C++和lua相互函数调用小例子
- LUA与C++互相调用简单例子
- 简单C++调用lua函数及C++和lua相互函数调用小例子
- C++ 调用Lua简单例子
- 简单C++调用lua函数的小例子
- 简单C++调用lua函数及C++和lua相互函数调用小例子
- C++ 调用Lua简单例子
- C++调用Lua读取配置文件的一个简单例子
- C++ 调用Lua简单例子
- lua环境的配置以及c++调用lua的简单例子
- C++调用lua例子
- c++ 调用lua函数简单案例
- Lua调用c++例子
- VS2013中C++简单调用Lua
- c/c++中调用lua第一个例子
- VC++6.0配置LUA环境和C++调用LUA的简单示例
- c++调用lua时简单打印lua栈
- lua学习系列:c++调用lua脚本的简单示例