【发布时间】:2012-08-14 14:55:06
【问题描述】:
这是代码,执行时得到错误:“PANIC: unprotected error in call to Lua API (attempt to call a nil value)”
#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();
luaL_openlibs(L);
luaL_dofile(L, "add.lua");
sum = luaAdd(10, 15);
printf("The sum is %d\n", sum);
lua_close(L);
return 0;
}
add.lua
function add(x, y) do
return x + y
end
end
你能告诉我,我哪里错了。 提前致谢。
【问题讨论】:
-
编译文件时是否出错?例如,Lua 真的 find
add.lua正确吗? -
我得到了答案,你无法图像,我把add.lua放在一个不正确的目录中,我把它放在cpp文件所在的目录中,当我把它放在项目目录中时,然后有用。谢谢@lhf 和尼可波拉斯。