C++ 通过C&x2B+;对象,以便Lua可以使用它
我知道使用Luabind可以公开类,然后可以在lua中创建这些类的实例C++ 通过C&x2B+;对象,以便Lua可以使用它,c++,lua,luabind,C++,Lua,Luabind,我知道使用Luabind可以公开类,然后可以在lua中创建这些类的实例 module[L_state] [ class_<Player>("Player") .def(constructor<>()) .def("Update",&Player::Update) ]; test.lua player = Player() player:Update() 您可以通过luabind将值推送到Lua堆栈上: Playe
module[L_state]
[
class_<Player>("Player")
.def(constructor<>())
.def("Update",&Player::Update)
];
test.lua
player = Player()
player:Update()
您可以通过luabind将值推送到Lua堆栈上:
Player p;
luabind::globals(L)["player"] = p;
一个可运行的示例:
请注意对象生存期和所有权问题。该手册有助于规划共享对象生命周期管理的策略LuaBind生命周期策略的更新。如果你想让事情按这样的方式进行,你可以从C++调用LUA函数来创建和访问实例。对于我的进程,对象将在整个应用程序中运行,因此不是问题。
Player p;
luabind::globals(L)["player"] = p;