当我调用绑定的 c++ 类函数两次时出现 lua 错误?
Getting lua error when I'm calling a bound c++ class function twice?
我发现了一篇关于如何将c++类绑定到lua的博客文章:http://loadcode.blogspot.com/2007/02/wrapping-c-classes-in-lua.html
但它并不是开箱即用的。我已经调整了我自己的功能,我使用的不是Sprite类,而是NPC类。我把函数setSpeed
改成了我自己的NpcSetPosition(lua_State *L)
,每次我在lua中调用以下函数时都会调用它:
local npc = Npc:New()
npc:SetPosition(5,5)
(npc:SetPosition函数)
现在有趣的是,我如何在NpcSetPosition
中调用checkSprite
,如果我这样做一次,lua脚本就会运行得很好。但如果我做两次(我调用npc:SetPosition(5,5)
两次),我会得到以下错误消息:
Lua Compile Error: script.lua:10: bad argument #1-1 to: 'SetPosition' (table expected, got userdata)
这意味着我不能为npc设置两次位置,这太糟糕了。你知道出了什么问题吗?这与lua堆栈有关吗?谢谢
听起来您对堆栈的管理不正确。
你在做lua_settop(0)吗;或类似的设置位置函数?如果您正确管理堆栈,则此错误将消失。
相关文章:
- g++的分段错误(在NaN上使用to_string两次时)
- 使用 getline(cin, var) 两次在进行字符串比较时会产生错误 (==)
- C++两次定义相同的函数会导致错误
- 我用C++做了一个计算器,但我对"type of calculator"的要求循环了两次。有人可以帮助指出我的错误吗?
- 调用某个回调函数两次会导致分段错误:Nan
- 连续两次写入数字时出现逻辑错误 (C++)
- 当我叫了两次时,set_union得到了错误的结果
- 为什么我的代码两次收到此错误"undefined reference to `Pizza::Pizza()' "
- CC1plus 错误:输出文件名指定两次
- 我找不到导致我的数组在运行两次案例并退出后损坏的错误
- C++程序 尝试连续运行两次写入循环时显示".. stopped working"错误
- 当我调用绑定的 c++ 类函数两次时出现 lua 错误?
- Eclipse c++包含头两次错误
- 错误LNK2005:已经定义了包含头文件两次
- 当事件循环在错误槽启动时,ContentNotFoundError发生时,QNetworkReply发出两次错误信号
- 为什么两次使用ifstream对象会导致错误
- 同一实例的停靠图标两次,非 GUI 进程错误地标记"not responding"
- 不知道出了什么问题 - 两次程序隔离错误
- 为什么当我删除两次相同的内存时没有错误?
- LNK2005错误.看起来一个文件被包含了两次