【发布时间】:2014-08-05 06:19:54
【问题描述】:
是否可以在 c++ 应用程序中使用 Luabind 实例化 Lua“类”?为了说明这个问题,请考虑以下简单的 Lua 脚本:
class "Person"
function Person:__init(name)
self.name = name
end
function Person:display()
print(self.name)
end
我可以在同一个 Lua 脚本中实例化这个类,并且一切正常。但是,我想在我的 c++ 应用程序中使用 Luabind 从这个类中实例化一个新对象。我尝试了以下方法:
luabind::object myObject = luabind::globals(L)["Person"]("John Doe");
myObject["display"]();
我希望看到控制台输出“John Doe”。相反,我遇到了 Lua 运行时错误。创建新对象的调用似乎有效。问题似乎是 self 在显示函数中为 nil。
【问题讨论】:
-
您需要了解 luabind 期望您如何调用方法而不是普通函数和/或手动将对象传递给该调用中的显示方法。