C++ LuaBridge 尝试索引用户数据值(本地"self")
C++ LuaBridge attempt to index a userdata value (local 'self')
我已经在框架中创建了一个周围的包装器,以便我可以轻松地将Luabridge换成替代库。作为我的框架初始化的一部分,我有某些课程在Luabridge注册。然后,我可以在LUA轻松访问或实例化这些课程。当我想在框架init中注册的类/表上的自定义方法时,问题就到了,我在lua中定义了。
function MyObject:OnUpdate()
self:Init()
end
如果我尝试通过传递myObject的实例来调用onupdate,以便我可以使用自我,我会收到以下错误:
"尝试为用户数据索引(本地'self'(
如果我手动注册MyObject,而不是允许我的框架在启动过程中初始化它,则它可以很好地工作。就像Lua可以清楚地看到它的定义,Lua可以解决MyObject的MetaTable。我似乎也找不到LUA的确切错误。
我弄清楚了我的问题。我上面提到的注册的类是在另一个库(DLL(中。我正在为每个班级生成钥匙,并将这些密钥存储在LUA注册表中。密钥生成使用静态模板方法,该方法返回每种类型的静态字符的地址。当调用代码从DLL返回到我的EXE时,我正在注册一个新类,该类从DLL中的预注册类中继承。当我查找基类的密钥时,它是不同的,因为执行原本是在DLL的上下文中运行的,现在它在我的EXE的上下文中运行。我认为这是在C 中使用模板以及代码正在执行的结果。使用C 超过15年后,我学到了一些新知识。希望这会帮助别人。
相关文章:
- 如何使用 asio 本地数据报构建回显服务器和客户端?
- 如何使用 C++ 中的 cpprestsdk 发布 json 数据并从本地服务器获取响应
- 如何将图像数据从搜索窗口中移动到本地存储器OpenCL
- C++ LuaBridge 尝试索引用户数据值(本地"self")
- C ,MySQL API加载数据本地
- 随着C 的数据更改,更新本地Qlabel的文本
- 如何从HTML输入中读取数据,并将数据本地写入文件以供将来访问
- 引用本地可访问数据的正当理由
- 在不使用For循环的情况下将数据从指向本地数组的指针传输到全局数组
- 通过套接字一致地丢失数据(但在使用本地主机连接时不会)
- 线程特定数据与线程本地存储
- C++ 如何接收从互联网站点到本地主机的流数据包
- 读取另一个线程中并发运行的 pthread 的本地数据
- 跨平台C++:使用历史数据转换为 UTC/本地时间
- 哪些是适合小型数据集的本地数据库(易于用C++处理)
- 为大型本地数据处理扩展堆栈的大小是个好主意吗
- C++类函数返回值 VS 对本地数据进行操作
- 无法在C++中将数据从服务器发送到本地网络上的客户端
- 将非本地数据/媒体文件与C++应用程序 (gtkmm) 一起使用
- VeriFone终端应用程序可以通过以太网进行通信,还可以存储本地数据