调用(S,0,0)将不起作用(试图调用字符串值)?
所以,我想继续添加Lua脚本到我的C ++游戏引擎,但是我似乎无法做到。
我正在看视频,我已经检查了一小段代码,我看不出我做错了什么。
#include <Lua Sourcelua.hpp>
lua_State* S = luaL_newstate();
luaL_openlibs(S);
luaL_loadfile(S, "main.lua");
lua_call(S, 0, 0);
Lua源代码和文件都在我的项目文件夹中,除了主要功能是2 cpp文件(删除这些文件)。
我的Lua文件看起来像这样:(并放置在Lua源代码的位置)。
print("Hello World")
我得到的错误如下所示:
在控制台中:
PANIC : unprotected error in call to Lua API (attempt to call a string value)
这是出现的错误框如下所示:
(按钮形式从左到右:取消,再试一次,忽略)
错误框链接
编辑:
我的代码现在看起来像这样,添加puts(lua_tostring(S, -1));
生成一条错误消息:
cannot open main.lua: no such file or directory
码
lua_State* S = luaL_newstate();
luaL_openlibs(S);
luaL_loadfile(S, "main.lua");
puts(lua_tostring(S, -1));
lua_call(S, 0, 0);
我的项目文件是这样的:
项目文件的图像
attempt to call a string value
是由lua_call
触发的,很可能意味着luaL_loadfile
返回非零值,并在堆栈中留下错误消息。
检查luaL_loadfile
的返回码。
另外,添加puts(lua_tostring(S,-1));
在调用luaL_loadfile
。
原来我只是误解了一个教程。
以为他的意思是lua脚本用完了lua自己的源代码文件夹......
但是,它用完了你的项目工作目录。
链接地址: http://www.djcxy.com/p/95461.html上一篇: call(S, 0, 0) won't work (attempted to call a string value)?
下一篇: Scripting with LuaJIT and selectively sandboxing the FFI