所以,我想继续为我的C ++游戏引擎添加Lua脚本,但我似乎无法做到。
我正在看一段视频而且我已经检查了一小部分代码,我看不出我做错了什么。
#include <Lua Source\lua.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);
我的项目文件是这样的:
答案 0 :(得分:3)
attempt to call a string value
由lua_call
触发,很可能意味着luaL_loadfile
返回非零并在堆栈上留下错误消息。
检查luaL_loadfile
的返回代码。
另外,请在致电puts(lua_tostring(S,-1));
后添加luaL_loadfile
。
答案 1 :(得分:1)
原来我只是误解了一个教程。
以为他的意思是lua脚本用完lua自己的源代码文件夹......
但是,它用完了你的项目工作目录。