gpt4 book ai didi

c++ - lua_call(S, 0, 0) 不起作用(试图调用一个字符串值)?

转载 作者:行者123 更新时间:2023-11-30 01:44:59 31 4
gpt4 key购买 nike

所以,我想继续将 Lua 脚本添加到我的 C++ 游戏引擎中,但我似乎做不到。

我正在看视频,检查了一小段代码,但看不出我做错了什么。

#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)

这是出现的错误框的样子:

(按钮从左到右:取消、重试、忽略)

Error Box Link


编辑:

我的代码现在看起来像这样,添加了 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);

我的项目文件是这样的:

Image of project files

最佳答案

attempt to call a string valuelua_call 触发,很可能意味着 luaL_loadfile 返回非零值并在堆栈。

查看luaL_loadfile的返回码。

此外,在调用 luaL_loadfile 之后添加 puts(lua_tostring(S,-1));

关于c++ - lua_call(S, 0, 0) 不起作用(试图调用一个字符串值)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35224854/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com